1. 程式人生 > >C語言經典程式設計282-19-直接插入排序

C語言經典程式設計282-19-直接插入排序

插入排序是直接把一個數據插入到已有的序列中

插入位置的確定:是將待插入的資料與已有序列進行比較。

#include <stdio.h>
void insort(int s[],int n)
{
	int i,j;
	for(i=2;i<=n;i++)         //從下標2開始比較
	{
		s[0]=s[i];            //設定監視崗
		j=i-1;                //確定比較的右邊元素
		while(s[0]<s[j])
		{
			s[j+1]=s[j];      //資料右移
			j--;              //向左移動比較
		}
		s[j+1]=s[0];          //移向左邊一個未比較的數
	}
}
main()
{
	int a[11],i;
	printf("請輸入10個數:\n");
	for(i=1;i<=10;i++)
		scanf("%d",&a[i]);
	printf("原始排序:");
	for(i=1;i<=10;i++)
		printf("%d  ",a[i]);
	printf("\n");
	insort(a,10);
	printf("排序後:");
	for(i=1;i<=10;i++)
		printf("%d  ",a[i]);
	printf("\n");

}