将比temp大的值从后往前依次后移(避免覆盖),再将temp插入到合适位置。
/*===============================================
* 文件名称:direct.c
* 创 建 者:cxy
* 创建日期:2024年01月25日
* 描 述:
================================================*/
#include <stdio.h>
int main(int argc, char *argv[])
{
int arr[10] = {0},temp;
int len = sizeof(arr) / sizeof(arr[0]);
for(int i = 0;i < len;i++)
scanf("%d",&arr[i]);
int i,j;
for(i = 1;i < len;i++)
{
temp = arr[i];
for(j = i-1; j >= 0;j--)
{
if(arr[j] > temp)
arr[j+1] = arr[j];
else
break;
}
arr[j+1] = temp;
}
for(int i = 0;i < len;i++)
printf("%d ",arr[i]);
puts("");
return 0;
}
结果