在有序数组中插入数据
时间: 1ms 内存:128M
描述:
定义好一个有10个元素的数组,先输入9个呈升序的数作为前9个元素,再输入一个数,要求按原来排序的规律将它插入数组中。
输入:
第一行,原始数列,9个呈升序的数。第二行,需要插入的数字。
输出:
插入后有序的数列
示例输入:
1 7 8 17 23 24 59 62 101
50
示例输出:
1
7
8
17
23
24
50
59
62
101
提示:
参考答案(内存最优[920]):
#include <stdio.h>
/*输入一个数插入到有序数组中*/
int main()
{
int i=0,d;
int a[10],b;
for(i=1;i<10;i++)scanf("%d",&a[i]);
scanf("%d",&a[0]);
for(d=0;d<9;d++)
if(a[d]>a[d+1])
{
b=a[d+1];
a[d+1]=a[d];
a[d]=b;
}
for(i=0;i<10;i++)printf("%d\n",a[i]);
return 0;
}
参考答案(时间最优[0]):
#include <iostream>
using namespace std;
int main()
{
int d[10];
int i, n;
for(i=0; i<9; i++)
cin>>d[i];
cin>>n; //要插入的数
i = 8;
while(i>=0&&d[i]>n )
{
d[i+1] = d[i];
i--;
}
i++;
d[i] = n;
for(i=0; i<10; ++i)
cout<<d[i]<<endl;
return 0;
}
题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。