编辑代码

#include<stdio.h>
#define N 10
 
void Half_Sort(int a[])
{
	for(int i=1;i<N;i++)
	{
		int x=a[i];   
		int low=0,high=i-1;  
		while(low<=high)
		{
			int mid=(low+high)/2; 
			if(x<a[mid])  
				high=mid-1;
			else
				low=mid+1;
		}
		for(int j=i-1;j>=low;j--)  
			a[j+1]=a[j];  
		a[low]=x;   
	}
}
 
int main(void)
{
	int a[N]={3,2,8,5,4,7,6,9,1,10}; 
	printf("原始数据为:\n");
	for(int i=0;i<N;i++)  
		printf("%d ",a[i]);
	printf("\n\n");
 
	Half_Sort(a);
	printf("使用插入排序后的数据为:\n");
	for(int i=0;i<N;i++)
		printf("%d ",a[i]);
	printf("\n");
	return 0;
}