9111:有序順序表的插入
阿新 • • 發佈:2018-11-25
Problem Description
有一順序表List,表中的元素值遞增有序,現要求將給定值插入該順序表中,同時保持順序表的遞增有序性。插入完成後,輸出新表的內容。(假設無表滿和重複值情況)
Input
有多組資料,每組資料佔兩行。
每組第一行有兩個整數,第一個為表長n(0<n<50),第二個為值x;
第二行為表的各元素值。
Output
每組資料的輸出佔一行,具體輸出如題。每兩個元素之間有一空格。
Sample Input
5 4 1 3 5 7 9
Sample Output
1 3 4 5 7 9
#include<iostream> using namespace std; int main() { int a[50],i,n,x; while(cin>>n){ cin>>x; for(i=0;i<n;i++) cin>>a[i]; //輸入已排好的9個元素 //輸入需要插入的數字 i=n-1; //從已知數列的最後一位與N進行比較。 while(i>=0&&a[i]>x) { a[i+1]=a[i]; //最大的數往最右面排 i--; //使上次已排好的數字不參與這次的排序 } i++; //此時即為a[i] a[i]=x; n++; for(i=0;i<n-1;i++) cout<<a[i]<<' '; //順序輸出 cout<<a[n-1]; cout<<endl; } return 0; }
我所遇到的問題:
今天oj小測的時候,我一直糾結這道題,浪費了好多時間,今天下午仔細研究了一下