小甲鱼 排序算法 直接插入排序
程序员文章站
2022-03-24 15:32:48
...
小甲鱼 排序算法 直接插入排序
在这之间排序算法的时间复杂度是O(n2),希尔排序突破了O(n*logn)
直接插入排序算法(Straight Insertion Sort)的基本操作是将一个记录插入到已经排好序的有序表中,从而得到一个新的、记录数增加1的有序表。
直接插入排序算法的效率 不会比冒泡排序和选择排序差
#include <stdio.h>
void InsertSort(int k[], int n)
{
int i, j, temp;
//i=1,因为需要j指向前一个元素
for(i = 1; i < n; i++)
{
//进行重新排序,后面的元素小于前面的元素
if (k[i] < k[i-1])
{
temp = k[i];
//一个一个地往后推,推到相应位置,然后把temp插进去
for (j = i -1; k[j] > temp; j--)
{
k[j+1] = k[j];//找位置,同时向后推移
}
k[j+1] = temp;
}
}
}
int main(void)
{
int i, a[10] = {5, 2, 6, 0, 3, 9, 1, 7, 4, 8};
InsertSort(a, 10);
printf("排序后的结果是:");
for (i = 0; i < 10; i++)
{
printf("%d", a[i]);
}
printf("\n\n");
return 0;
}
上一篇: 小甲鱼 排序算法 冒泡排序
下一篇: 排序算法---快速排序