1119: 【入门】元素插入有序数组http://www.jzoj.cn/problem.php?id=1119
jzoj1119: 【入门】元素插入有序数组c++
时间限制: 1.000 Sec 内存限制: 16 MB
提交: 18341 解决: 8257
[命题人:][下载数据: 30]
提交状态报告
题目描述
给你一个整数n和一个数列,这个数列保证从小到大排列。
现要求将这个整数n插入到数列中,使新的数列仍然从小到大排列。
输入
第一行,一个整数x,等待插入的数。
第二行,一个整数n,数列中数的个数。
第三行,n个整数。
输出
一行整数:新的数列(空格隔开)
样例
输入 复制
2 4 1 3 4 5
输出 复制
1 2 3 4 5
思路:
我做这题是发现sort(快排)用不出来所以就直接用了冒泡排序,慢了一点啊!
思路很简单,输入a[n]再把x插入队尾最后冒泡排序输出,
代码如下:
#include<bits/stdc++.h>
using namespace std;
int n,x;
int main(){
scanf("%d%d",&x,&n);
int a[n+5]={0};
for(int i=0;i<n;++i){
scanf("%d",&a[i]);
}
a[n]=x;
for(int i=0;i<=n;++i){
for(int j=0;j<=n;++j){
if(a[j]<a[j-1]) swap(a[j],a[j-1]);
}
}
for(int i=0;i<=n;++i){
printf("%d ",a[i]);
}
printf("\n");
return 0;
}
注意:
因为是把x插到队尾,所以,循环的条件是i<=n!