![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法导论
Joyfulmath
math of joy, to make better life
a husband, a father, & a coder
展开
-
String 匹配算法(2)---第32章
<br />3.KMP算法(Knuth-Morris-Pratt )<br />该算法的与Rabin-Karp一脉相承。也就是先排除可能不是的,在可能中逐一比较。<br />I.π函数的得到:COMPUTE-PREFIX-FUNCTION(P) 1 m ← length[P] 2 π[1] ← 0 3 k ← 0 4 for q ← 2 to m 5 do while k > 0 and P[k + 1] ≠ P[q] 6 do k ← π[k]原创 2011-03-03 10:55:00 · 402 阅读 · 0 评论 -
算法入门----第2章
1.算法正确性的证明数学归纳法:证明当 n = 1 时命题成立。证明如果在 n = m 时命题成立,那么可以推导出在 n = m+1 时命题也成立。(m 代表任意自然数)算法的迭代性,以及有类似归纳法的特性可以用归纳法来证明其正确性。2.插入算法。效率:/*********************************************************************best Θ(n)*hard Θ(n2)*********原创 2011-03-03 11:11:00 · 396 阅读 · 0 评论 -
String 匹配算法---第32章
1.navite string 算法:基本就是一个一个匹配,对于不太长的字串来说,效率还行。效率:O((n - m + 1)m)算法伪代码:NAIVE-STRING-MATCHER(T, P)1 n←length[T]2 m←length[P]3 fors← 0 ton - m4 do ifP[1 ‥m] = T[s + 1 ‥s + m]5 then print "Pattern原创 2011-03-03 10:43:00 · 441 阅读 · 0 评论 -
排序算法2---快速排序
2.quicksort算法思想:一组无序的数,取某一标杆(标杆为数列中的某个数),任何大于该数的值放在右边,任何小于该数的值放在左边,相等放那边都行。依次类推,每次最少可以排序一个数。从而在有限次后,该数组就可以排序好。快速排序是目前公认平均情况下算法复杂吧最优的。平均复杂度: T (n) = O(n )最差复杂度:Θ(n2)伪代码:QUICKSORT(A, p, r)1 if p原创 2011-03-23 10:45:00 · 526 阅读 · 0 评论 -
排序算法
<br />1.Insertion sort<br />假定一串已经排序好的数列,array A,插入 An, 使新的数列也排序OK,依次排序,则整个数列就排序OK。<br />当数列个数为1时,排序OK。从而整个数列排序从1个,2个。。。直到排序结束。<br />INSERTION-SORT(A)1 for j ← 2 to length[A]2 do key ← A[j]3 ▹ Insert A[j] into the sorted sequence A[1原创 2011-03-23 10:34:00 · 362 阅读 · 0 评论