1 template<class Type> 2 void insertion_sort(Type *a, intn) 3 { 4 Type key; // cost times 5 for (inti= 1; i< n; i++){ // c1 n 6 key=a[i]; // c2 n-1 7 intj=i-1; // c3 n-1 8 while( j>=0 && a[j]>key ){ // c4 sum of ti 9 a[j+1]=a[j]; // c5 sum of (ti-1) 10 j--; // c6 sum of (ti-1) 11 } 12 a[j+1]=key; // c7 n-1 13 } 14 }
归并排序:
计算递推式通常有三种方法:代入法、迭代方法(iterating)和主方法(master method)。
主方法 主定理:设a≥1a≥1a≥1和b>1b>1b>1为常数,f(n)f(n)f(n)是一个函数,T(n)T(n)T(n)由下面的递推式定义:
摊还分析(Amortized analysis)
基本方法
动态给数据分配空间,提高空间利用率!
原文:https://www.cnblogs.com/HONG-QI/p/11006611.html