
算法复习
xyqzki
wahahahaahahahahah
展开
-
八种排序算法总结
ref: http://www.cricode.com/3212.html排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。本文将依次介绍上述八大排序算法。转载 2014-11-27 14:27:33 · 698 阅读 · 0 评论 -
数据结构复习第一遍
1. linear list: need the base pointer and the list lengthsequential list: easily do searchlinked list: easily delete, and insert2. stack: need base pointer, top pointer & stacksizeap原创 2014-11-28 10:28:17 · 699 阅读 · 0 评论 -
01背包问题 动态规划
Given N, M. 先确定objective 是value 先top-bottom, 考虑 i 与 i-1的关系 f[i][m]=max{f[i−1][m],f[i−1][m−wi]+vi}f[i][m] = \max\{f[i-1][m], f[i-1][m-w_i] + v_i\} 再bottom-top来构建这个matrix, 先求 f[1][0:M] 再求 f[2][0:M]原创 2015-11-06 22:36:19 · 669 阅读 · 0 评论 -
回溯算法
典型问题, 01背包问题, 8皇后问题,核心就是 找到 解空间,通常是个vector。然后穷举这个vector所有的可能值。例如,在01背包问题中,解空间就是一个vector,每个element的可能值就是0或者1,所以只需要求出N!个解就行了。这种穷举解空间的过程用到了回溯。再拓展到8皇后问题,解空间也是一个vector,只不过每个element的可能值不再是原创 2015-11-07 16:02:22 · 579 阅读 · 0 评论 -
回溯算法 Backtrack
典型问题, 01背包问题, 8皇后问题,核心就是 找到 解空间,通常是个vector。然后穷举这个vector所有的可能值。例如,在01背包问题中,解空间就是一个vector,每个element的可能值就是0或者1,所以只需要求出N!个解就行了。这种穷举解空间的过程用到了回溯。 BTW, 解空间还是个完全二叉树import java.util.*;public class Backtracking原创 2015-11-07 16:10:12 · 4470 阅读 · 0 评论 -
搜索算法-广搜深搜
典型问题: 迷宫问题,核心:也是搜索树类型的解空间,只不过目标只需要找到其中一个目标解,就可以break了。而不是跟回溯一样遍历整个树的从根节点到叶子节点的path,然后找到一条最佳的path原创 2015-11-08 19:48:07 · 907 阅读 · 0 评论 -
Tree -- Traverse & DFS & BFS
注意pre order, in order, post order 跟DFS, BFS遍历顺序不一样。post order 用于计算expressions.tree traverse. see http://interactivepython.org/runestone/static/pythonds/Trees/TreeTraversals.html python code不同的遍历方法仅仅原创 2015-12-07 13:05:57 · 641 阅读 · 0 评论