1. 程式人生 > >直接插入排序演算法-設定哨兵版

直接插入排序演算法-設定哨兵版

/*直接插入排序演算法的時間複雜度為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;
}