#include<stdio.h>
int main() {
int k, x, N,i;
scanf("%d", &N);
int a[100];//随便定义了一个100个数据的数组
for ( i = 0; i < N; i++) {
scanf("%d", &a[i]);//将数据依次输入数组
}
int temp, j;
for ( i = 1; i < N; i++)//利用了插入排序法,首先将第二个数组值存储入temp里
{
j = i - 1;
temp = a[i];//每一次结束while的循环后都要把temp值往后面移动一位
while (a[j] > temp&&j >= 0)//比较temp值与前一位数组值的大小,若temp比前一项值大,(符合从小到大排序的条件),则j--,比较temp与前二项的值,
{
a[j + 1] = a[j];//若temp比前一项值小,则将前一项值往后面移一位,前一项为空值。继续循环比较temp与前第二项的值,与此类推。
j--;
}
a[++j] = temp;//把temp值赋给第j的后一位 ,补齐空的数组 ,这样就完成了从小到大数组的排序
}
for ( i = 0; i < N; i++)//最后依次输出数组,用for循环从小到大
{
printf("%d", a[i]);
if(i<N-1)
printf(" ");
}
printf("\n");
return 0;
}
03-02
1万+
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)