diff --git a/插入排序 b/插入排序 new file mode 100644 index 0000000..ff74224 --- /dev/null +++ b/插入排序 @@ -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+2)(n-1)/ 2 次。移动(n+4)(n-1)/2次。如果排序记录是随机的,根据概率相同的的原则,平均比较移动次数为n^2/4, 故直接插入排序算法时间复杂度为O(n^2)