数据结构与算法概览

数据结构 + 算法 = 程序

查找和排序

东西,它就在那里。但你需要找到它。

  • 我们需要的,是查找。
  • 为了便于查找,我们需要排序。
  • 秩序,只是排序的别名。

查找 - find

  • 线性查找太慢
  • 二分查找指数级别收敛
    • 需要事先排序
    • 排序算法
    • 需要下标索引
    • 二叉树
    • Skip List

排序 - sort

有时候排序本身就是目的。

有时候,排序是为了快速查找。

  • 选择排序
  • 冒泡排序
  • 插入排序
  • 快速排序

Hash

Hash 也可以看作是一种排序。

TODO

树 - Tree

  • 二叉树 Binary Tree
    • AVL Tree
    • 红黑树
  • B+ Tree

字符串算法

  • KMP 算法 - fgrep
  • Regular Expression - egrep