问题:有一个已经排好序的数组,今输入一个数,要求按照原来的排序规律将它插入到数组中
算法思想:在有序的数组中插入一个数,找到第一个比它大的数,记录为t,比它大的数都往后移,将其插入空出来的位置。判断如果它大于最大的元素,直接插到最后面。
代码:
#include<bits/stdc++.h>
using namespace std;
int main(){
int a[10];
int n;
cin>>n;
for(int i=0;i<n;i++){
cin>>a[i];
}
int x,t;
cin>>x;
for(int i=0;i<n;i++)
{
if(x>=a[n-1]){
t=n;break;
}
else if(a[i]>=x){
t=i;break;
}
}
cout<<t<<endl;
for(int j=n-1;j>=t;j--){
a[j+1]=a[j];
}
a[t]=x;
n=n+1;
for(int i=0;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}