算法导论
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 · 404 阅读 · 0 评论 -
算法入门----第2章
1.算法正确性的证明数学归纳法:证明当 n = 1 时命题成立。证明如果在 n = m 时命题成立,那么可以推导 出在 n = m +1 时命题也成立。(m 代表任意自然数)算法的迭代性,以及有类似归纳法的特性可以用归纳法来证明其正确性。2.插入算法。效率:/******************************************************************** *best Θ (n ) *hard Θ (n2 ) *********原创 2011-03-03 11:11:00 · 398 阅读 · 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 - m 4 do ifP [1 ‥m ] = T [s + 1 ‥s + m ] 5 then print "Pattern原创 2011-03-03 10:43:00 · 443 阅读 · 0 评论 -
排序算法2---快速排序
2.quicksort算法思想:一组无序的数,取某一标杆(标杆为数列中的某个数),任何大于该数的值放在右边,任何小于该数的值放在左边,相等放那边都行。依次类推,每次最少可以排序一个数。从而在有限次后,该数组就可以排序好。快速排序是目前公认平均情况下算法复杂吧最优的。平均复杂度: T (n) = O(n )最差复杂度:Θ (n2 )伪代码:QUICKSORT(A, p, r) 1 if p原创 2011-03-23 10:45:00 · 532 阅读 · 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 · 364 阅读 · 0 评论