随笔分类 - Algorithm
摘要:具体解析可参见:http://bubkoo.com/2014/01/14/sort-algorithm/heap-sort/
阅读全文
摘要:一、原理: KMP算法是由Knuth,Morris,Pratt共同提出的模式匹配算法,其对于任何模式和目标序列,都可以在线性时间内完成匹配查找,而不会发生退化,是一个非常优秀的模式匹配算法。朴素算法(即暴力循环)的效率太差,因为它没有好好利用比较时产生的信息,而KMP算法则运用了这一点,所以可以达到
阅读全文
摘要:一、Ackerman函数: ackerman函数的定义如下: 二、Ackerman函数的递归实现: 利用递归来实现ackerman函数是比较简单的: 三、利用栈来实现Ackerman函数: 我们可以使用栈来模拟递归函数的过程,下列代码中,使用栈st来保存每个递归函数的参数m,tmp用来保存每个递归函
阅读全文
摘要:一、原理: 如下图:对于一个序列:16, 7, 13, 10, ..., 14,我们先把16, 7归并且排序成新序列(7, 16),把13, 10归并且排序成(10, 13), ..., 接着重复把(7, 16), (10, 13)归并且排序为(7, 10, 13, 16), 把(9, 15), (
阅读全文
摘要:一、原理: 对于序列[0, ..., n-1],首先找出A中最小的元素并将其与A[0]交换。接着找出A中第二小的元素,即A[1, .., n-1]中的最小元素与A[1]交换,对A中的前n-1的元素按该方式继续... 二、代码: 三、分析: 因为每一次都需要对子序列进行遍历,所以其最好和最坏的情况的时
阅读全文
摘要:一、原理: 插入排序是在一个序列A[0, ..., n-1]中,将从第i位(i >= 2)开始,将第i位插入到前面已排好顺序的序列A[0,... ,i-1]中,最终得到一个有序序列。 二、代码: 三、分析 (1)最好的情况是O(n),即序列已经顺序排好的情况; (2)最坏的情况是O(n^2),即序列
阅读全文

浙公网安备 33010602011771号