#include<stdio.h>
void insertionSort(int *a,int n)
{
int i,j,temp;
for(i=2;i<=n;++i)/*数组从下标1开始存储,第一个元素有序,所以从第二个开始处理*/
{
temp=a[i];/*将带插入元素暂存于temp中*/
j=i-1;
while(j>=1&&temp<a[j])/*这个循环完成了从待排元素之前的元素开始扫描*/
{
a[j+1]=a[j];
--j;
}
a[j+1]=temp;/*找到插入位置,将temp中暂存的待排元素插入*/
}
}
int main()
{
int arr[11];
int i;
for(i=1;i<=10;i++)
scanf("%d",arr+i);
insertionSort(arr,10);
for(i=1;i<=10;i++)
printf("%d ",arr[i]);
return 0;
}
直接插入排序
最新推荐文章于 2022-11-18 21:09:57 发布