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");

}

猜你喜欢

转载自blog.csdn.net/weixin_41445387/article/details/83385568