数组逆序
数组是C++语言重要的数据结构,对它的一些基本操作要熟练掌握。今天,我们就来讨论,怎么把元素的插入有序数组的问题?
案例
题目描述
给你一个整数n和一个数列(数列个数不超过1000),这个数列保证从小到大排列,现要求将这个整数n插入到数列中,使新的数列仍然从小到大排列。
输入
第一行一个整数n :等待插入的数 第二行一个整数m :数列中数的个数 第三行m个整数(空格隔开)。
样例输入
2
4
1 3 4 5
输出
一行整数:新的数列(空格隔开)。
样例输出
1 2 3 4 5
程序代码
#include <iostream>
using namespace std;
int main(){
int n,a[1000],i,x,y;
cin >> y;
cin >> n;
for(i = 0 ; i < n ; i++){
cin >> a[i];
}
// 假设没有元素比y大,y应该插入到最后一个元素的后面
x = n;
for(i = 0 ; i < n ; i++){
if(a[i] >= y){
x = i;
break;
}
}
for(i = n - 1 ; i >= x ; i--){
a[i + 1] = a[i];
}
a[x] = y;
n++;
for(i = 0 ; i < n ; i++){
cout << a[i] << " ";
}
}