Coursera 程序设计与算法专题-4&5 算法基础+数据结构基础

算法基础

1 基本思想

枚举

依次判断,类似于遍历。
三大关键:
解空间;
减少搜索空间;
采用合适搜索顺序。

2 递归思想

三大要点:
递归式;
递归出口;
界函数。

用栈替代递归:

3 动态规划(复习重点)

最长公共子序列

4 DFS

5 BFS

6 Binary Search & Greedy Algorithms

1 数据结构基础

线性结构

线性表(链表)

队列
字符串:substring

非线性结构

1 树
二叉树
二叉搜索树,
Huffman树
min/max heap
priority queue
2 图
强连通分量
最短路径
最小生成树

基本算法分类

1 穷举法:一一枚举数据;顺序找k值
2 回溯,搜索:八皇后,树,图遍历
3 递归分治:二分找k值,快排,merge sort
4 贪心算法:huffman tree, 最短路径dijkstra算法,最小生成树prim算法
5 动态规划:最短路径floyd算法

2 高级数据结构与算法

排序

in-place sort
insert sort; select sort
merge sort;
bucket sort;

out-place sort
优点:价格低,信息不易丢失,portable;
缺点:very slowly r/w speed;

索引

静态索引
倒排索引

B/B+ tree

Red/Black tree,位索引技术

Trie tree-字典树

AVL tree