# include <stdio.h>
//插入排序的时间复杂度也是n的平方,但是效率比冒泡快一些,而且再数组基本有序的情况下,效率也比选择排序快一些。
void print(int * a, int len)
{
for(int i=0; i<len; i++)
printf("%d ", a[i]);
printf("\n");
}
void insertSort(int * pArr, int len)
{
for(int i=1; i<len; i++)
{
int temp = pArr[i];
int n = i; //n代表要插入的位置
while(temp < pArr[n-1]) //找到要插入的位置
{
n--;
}
for(int j=i; j>=n; j--) //顺序表插入元素
{
pArr[j] = pArr[j-1];
}
pArr[n] = temp;
}
}
int main(void)
{
int a[5] = {5, 6, 3, -1, -10};
insertSort(a, 5);
print(a, 5);
return 0;
}
插入排序优化
最新推荐文章于 2024-07-14 22:00:56 发布