在有序数组中插入数据

在有序数组中插入数据

时间: 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;
}

题目和答案均来自于互联网,仅供参考,如有问题请联系管理员修改或删除。

点赞

发表评论

电子邮件地址不会被公开。必填项已用 * 标注