对一个已经排序好的数组,将一个数插入并且不改变数组原有的排序。
思路:
对每个元素进行遍历进行比较,如果符合条件,则将其后面的元素向后移移位,然后在当前位置插入元素。
#include<stdio.h>
int a[9] = {2,3,5,9,15,19,25,29};
int main()
{
int pos;
scanf("%d",&pos);
bool fask = true;
for(int i = 0;i<8;i++)
{
if(a[i]>pos)
{
fask = false;
for(int j=8;j>i;j--)
{
a[j] = a[j-1];
}
a[i] = pos;
break;
}
else continue;
}
if(fask) a[8] = pos;
for(int i=0;i<9;i++)
{
printf("%d ",a[i]);
}
return 0;
}