Add 插入排序

master
pn43tqvrm 4 years ago
parent ec09688d23
commit 92423fd3d0

@ -0,0 +1,12 @@
//插入排序
void insert_sort(int a[] , int l , int r ){
for (int i = l + 1 ; i <= r ; i ++){
//找到合适的位置
int j , t = a[i];
for (j = i ; j && a[j - 1] > t ; j --) a[j] = a[j - 1];
//插入到合适的位置
a[j] = t;
}
}
//复杂度说明当最好情况需要进行n-1次比较且每次都是a[i]>a[i+1],每一栋记录时间复杂度为O(n).最坏情况下需要比较n+2n-1/ 2 次。移动(n+4)(n-1)/2次。如果排序记录是随机的根据概率相同的的原则平均比较移动次数为n^2/4, 故直接插入排序算法时间复杂度为O(n^2)
Loading…
Cancel
Save