Algorithm
笔还是要动的
这个作者很懒,什么都没留下…
展开
-
动态规划(一)
动态规划(一)dynamic programming:此处的programming表示用的是表格法,非编程的意思 。类似于分治,通过组合子问题的解来解决原问题。分治将问题划分互不相交的子问题,递归求解子问题,并且将子问题的解结合起来,求得原解。而动态规划要求子子问题重叠。动态规划是递归的优化。当采用递归重复调用相同子问题时,就可以使用动态规划来解决。问题特征:overlapping su...原创 2020-03-14 21:33:43 · 172 阅读 · 0 评论 -
树: unordered tree、Binary Search Tree、AVL、B Tree、Red Black Tree
文章目录树基本概念二叉树性质二叉树分类无序树的构建和遍历BinTree.h测试代码main.cppBST二叉查找树BSTree.hmain.cppAVL平衡二叉查找树:自平衡AVL树失衡的四种姿态LL : 右旋g:g的左孩子的左子树导致失衡RR : 左旋g:g的右孩子的右子树导致失衡LR : 左旋p+右旋g = RR+LLRL : 右旋p+左旋g = LL+RRAVL树的添加操作一、大致思路二、...原创 2020-02-14 13:31:55 · 501 阅读 · 0 评论 -
图:BFS、DFS、CycleDetection、UnionFind、Kruskal、Prim、TopoSort、Kosaraju、Tarjan、Dijkstra、BF、Floyd、Johnson
图阿西,零、基本概念图的概念:顶点(Vertex),边(Edges),度(degree): 入度和出度indegree,outdegree有向无环图:DAG握手定理(无向图):一个聚会上,把每个人握手的次数相加必为偶数,也就是所有顶点的度加起来等于边数的两倍。图的分类有向图(Directed Graph):单箭头,顶点A,B: (A,B) != (B,A)无向图(Un-...原创 2020-03-10 17:43:13 · 737 阅读 · 0 评论 -
c++排序: 冒泡、选择、插入、归并、快速、堆排序、桶排序
排序github源码地址文章目录排序一、冒泡排序二、选择排序三、插入排序四、归并排序:左排右排合并五、快速排序:分区递归六、堆排序:堆头交换下树循环堆上树下树堆排序七、桶排序计数排序基数排序补充:应用归并排序:最小和&逆序对快速排序:荷兰国旗问题桶排序:计算数组排序后的相邻两数的最大差值综合排序最优解:先满足时间复杂度最优,再满足最小空间稳定性:相同元素在排序时的先后位置不变递归...原创 2019-12-04 17:31:37 · 276 阅读 · 0 评论