GeeksforGeeks Recursion Greedy
Recursion
http://www.geeksforgeeks.org/reverse-a-stack-using-recursion/
Greedy (几个经典图算法的实现)
http://www.geeksforgeeks.org/greedy-algorithms-set-2-kruskals-minimum-spanning-tree-mst/
http://www.geeksforgeeks.org/greedy-algorithms-set-3-huffman-coding/
CPP 优先队列的使用
http://www.geeksforgeeks.org/greedy-algorithms-set-3-huffman-coding-set-2/
http://www.geeksforgeeks.org/greedy-algorithms-set-5-prims-minimum-spanning-tree-mst-2/
http://www.geeksforgeeks.org/greedy-algorithms-set-5-prims-mst-for-adjacency-list-representation/
在Prim算法实现的时候,前者用sptSet记录已经被纳入最小生成树集合的节点数,每一次外层循环,有一个节点被加入到最小生成树中,所以外层循环数为节点数;后者利用相同的思路,用一个最小堆来存储尚未纳入最小生成树的节点,当最小堆为空时,算法结束,循环执行数目也是节点数V。
http://www.geeksforgeeks.org/greedy-algorithms-set-6-dijkstras-shortest-path-algorithm/
http://www.geeksforgeeks.org/greedy-algorithms-set-7-dijkstras-algorithm-for-adjacency-list-representation/
Dijkstra算法与Prim算法相似,求最短路径的过程其实是生成最短路径树的过程,前者用sptSet记录已经加入最短路径生成树的结点,所以循环的次数为节点数;后者用最小堆记录当前尚未加入最短路径生成树的节点,外层循环的执行次数为节点数。
http://www.geeksforgeeks.org/rearrange-a-string-so-that-all-same-characters-become-at-least-d-distance-away/