第十三周OJ项目B:在有序数组中插入数据

来源:互联网 发布:linux怎么发音 编辑:程序博客网 时间:2024/05/05 09:14

问题:

B: 在有序数组中插入数据

Description
定义好一个有10个元素的数组,先输入9个呈升序的数作为前9个元素,再输入一个数,要求按原来排序的规律将它插入数组中。
Input
第一行,原始数列,9个呈升序的数。第二行,需要插入的数字。
Output
插入后有序的数列
Sample Input
1 7 8 17 23 24 59 62 101
50
Sample Output

1
7
8
17
23
24
50
59
62
101

代码:

#include <iostream>using namespace std;int main(){    int a[10];    int i,x,n;    for(i=0; i<9; i++)        cin>>a[i];    cin>>x;    for(i=0; i<9; i++)    {        if(x>=a[i]&&x<=a[i+1])   //插入位置,判断大小        {            n=i+1;            for(i=9; i>n; i--)            {                a[i]=a[i-1];            }            a[n]=x;        }        else if(x<a[0])          //如果x比a[0]还要小的时候,上述条件已不再成立        {            for(i=9; i>0; i--)            {                a[i]=a[i-1];            }            a[0]=x;        }    }    for(i=0; i<10; i++)          //输出数组        cout<<a[i]<<endl;    return 0;}
运行结果:



知识点总结:

在有序数组中插入数据

学习心得:

插入数据时,要注意好判断条件以及确定插入位置。同时,要考虑插入的数据在数组最前和最后面的情况。

0 0
原创粉丝点击