直接插入排序算法-设置哨兵版

时间:2021-05-11 19:27:34
/*直接插入排序算法的时间复杂度为O(n^2),
它是稳定的排序算法*/
#include <stdio.h>
int sum[1000];
int main()
{
int n,i,j;
scanf("%d",&n);
for(i=1;i<=n;i++)
{
scanf("%d",&sum[i]);
}
for(i=2;i<=n;i++)
{
sum[0]=sum[i]; //设置哨兵
j=i-1;
while(sum[0]<sum[j])
{
sum[j+1]=sum[j];
j--;
}
sum[j+1]=sum[0];
}
for(i=1;i<=n;i++)
printf("%d ",sum[i]);
return 0;
}