1.算法正确性的证明
数学归纳法:
- 证明当 n = 1 时命题成立。
- 证明如果在 n = m 时命题成立,那么可以推导 出在 n = m +1 时命题也成立。(m 代表任意自然数)
算法的迭代性,以及有类似归纳法的特性可以用归纳法来证明其正确性。
2.插入算法。
效率:
/********************************************************************
*best Θ (n )
*hard Θ (n 2 )
**********************************************************************/
伪代码:
INSERTION-SORT(A) cost times 1 for j ← 2 to length[A] c1 n 2 do key ← A[j] c2 n - 1 3 ▹ Insert A[j] into the sorted sequence A[1 ‥ j - 1]. 0 n - 1 4 i ← j - 1 c4 n - 1 5 while i > 0 and A[i] > key c5 6 do A[i + 1] ← A[i] c6 7 i ← i - 1 c7 8 A[i + 1] ← key c8 n - 1
C语言实现: