zoukankan      html  css  js  c++  java
  • 纸上谈兵: 算法与数据结构

    算法和数据结构是计算机科学的核心内容。作为程序员,编程是我们的实战项目。然而,写出程序还不够。一个程序在应对一些大型而复杂的情况时,会耗费大量的时间。我们可以很容易写出一个从文件中找到一个词的程序,比如逐词扫描,看是否相符。但如果我们的文件有几十TB,而且要从文件中找到上百个词,逐个扫描的办法就几乎不可行。我们需要优化程序,以便我们的程序可以应对复杂问题。算法研究解决问题的方法,而数据结构则是设计一种更好的组织数据和使用数据的方式。两者有很强的相互依赖关系,所以往往放在一起讨论。

     

    我将这一系列文章标题为“纸上谈兵”。历史上,纸上谈兵的是赵括。他是赵国名将赵奢的儿子。赵括自幼熟读兵书,但没怎么上过战场。他取代廉颇指挥赵军,与秦军对峙。由于他急于出击,导致赵军陷入圈套,兵败长平。四十万赵国士兵被坑杀,赵国一蹶不振。

     

    就好像兵书一样,“算法和数据结构”的核心是处理计算机问题的一些基本原则经典案例。与介绍语言的语法书不同,“算法和数据结构”不能包治百病。很多时候,程序员需要修改已有算法,或者创造算法,才能解决问题。读过兵书之后,还要会活用,才算真正懂得了算法。我还是处于纸上谈兵的阶段,所以以“纸上谈兵”为标题以自勉。在这个系列中,我将简述一些经典算法和数据结构的基本思想,并分享我自己写的相关实现代码。这些代码纯粹是为了加深自己的理解写的,你完全可以忽略我写的代码,而自行实现。动手练习,是学习编程的最好途径了。

    希望对大家有用。

     

    数学归纳法, 递归, 栈

     

    排序算法

     

    表 (list)

     

    栈 (stack)

     

    队列 (queue)

     

    树, 二叉树, 二叉搜索树

        AVL树

        伸展树 (splay tree)

     

    堆 (heap)

        左倾堆 (leftist heap)

     

    哈希表 (hash table) 

     

    图 (graph)

        拓扑排序 (topological sort)

        最短路径(shortest path)与贪婪

     

    RSA加密与破解

     

    未完待续...

     

    ===================

    下面是参考书籍:

    豆列

    http://book.douban.com/doulist/1938922/#sb1237002

     

  • 相关阅读:
    正则表达式
    Ajax跨域问题---jsonp
    Ajax
    字符串总结
    js 字符串加密
    jsDate()
    HDU 5430 Reflect
    HDU 5429 Geometric Progression
    HDU 5428 The Factor
    POJ 2485 Highways
  • 原文地址:https://www.cnblogs.com/lanye/p/3736154.html
Copyright © 2011-2022 走看看