对插入排序的理解
给一堆无序数(n个数据)进行插入排序步骤:
第1个元素进行排序,插入第2个元素;
前2个进行排序,插入第3个元素;
前3个元素进行排序,插入第3个元素;
……
前n个数据进行排序,完成排序
注意:插入元素到有序的序列中比较排序哦
OK,很简单!
接下来写一个数组的插入排序
void insertsort(int R[],int n)
{
int i,j,temp;
for(i=1;i<n;++i)
{
temp=R[i];
j=i-1;
while(j>=0&&temp<R[j])
{
R[j+1]=R[j];//不断更新该数组出前j个最小的数
--j;
}
R[j+1]=temp;//找到插入位置,将最小的数放在最前面
}
}
下面是主函数
int main()
{
printf("插入排序算法\n输入8个数据进行排序:\n");
int R[8];
for(int i=0;i<=7;i++)
{
scanf("%d",&R[i]);
}
insertsort(R,8);
printf("\n小大排序之后的顺序:");
for(i=0;i<=7;i++)
{
printf("%d ",R[i]);
}
printf("\n");
return 1;
}
运行结果
ok没问题!