Algorithm
Lupinus_Linn
如无特殊说明,本人的文章采用 CC BY-NC 4.0 (非商用,注明出处)协议共享,让我们一起学习,共同成长!
展开
-
Algorithm LCS最长公共子序列
算法:递归法:对于序列A[0,n]]和B[0,m],LCS(A,B)无非三种情况若A或B为空,则取作空序列,作为递归基如果末字符相等,即A[n]=B[m]=‘X’,则取LCS(A[0,n),B[0,m))+‘X’,如果前者可以求解,则问题的规模被缩小如果末字符不相等,即A[n]!=B[m],比如A[n]=a,B[m]=b,则a和b至多有一个会出现在最后的解里(对解有贡献)。因为...原创 2019-02-14 16:15:43 · 219 阅读 · 0 评论 -
Algorithm MergeSort归并排序
Reference:归并排序_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili其实有时候算法真正实现出来了再去看,也没当初自己觉得的那么难。讲解用的C++,底下有用C实现了一下,其实没差。具体的内容看顶部的视频,讲的很细。归并排序名字已经说明了内涵,归指递归,将问题的规模缩小到只有一个元素时去解决,并指合并,将小的数组有序交叉合并,最后就能得到排序好的数组。同样地,其实现也是分两步,...原创 2019-02-11 15:36:33 · 258 阅读 · 0 评论 -
Algorithm Hanoi汉诺塔
Reference「递归练习」汉诺塔_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili其实汉诺塔老早就写过了,不论是学Python还是C时,老师都讲过。汉诺塔也是我头一次体会到Python的效率真的被C甩好几条街……实现的重点就在于,不要去管上层的盘子怎么移动,只去关心最底层盘子的移动和计数。用了全局变量cnt来计数,src、mid、dst分别表示源盘子,辅助盘子和目标盘子。接口:...原创 2019-02-11 16:19:17 · 162 阅读 · 0 评论 -
Algorithm QuickSort快速排序
Reference快速排序(过程图解)快排其实比归并写起来要容易一些。核心原理就是选取一个基准数,然后把比他小的放到左边,比他大的放到右边,然后再同样处理两边,递归,最终排好序。实际操作时并没有这么做,我们忽略基准数,从两边开始检查,把左边较大的和右边较小的交换,最后两者相遇时再把基准数交换过来。这样相对位置关系可以保证。核心代码:swap函数不是必需的,图个省事,C++中可以方便地使...原创 2019-02-12 11:20:42 · 219 阅读 · 0 评论