有序數列的數據插入問題
阿新 • • 發佈:2018-12-02
移動 數據位 很多 步驟 code namespace pre rom -i
3.實驗3_2:有序數列的數據插入問題
編程分析,這個問題包括3個關鍵步驟:1)確定要插入數據的位置。這步操作使用的方法有很多種,如可以使用折半查找比較的方法,也可以使用順序比較的方法;2)將自插入位置開始後的所有數據都向後移動一個位置,以便空出要插入數據的位置。若插入數據位置在原有所有數據之後,該步驟可省略,若插入數據位置在第一個數據之前,所有數據依次後移一個位置;3)將要插入的數據存儲在該空位置上。
順序比較:
#include<iostream> using namespace std; int main() { const int N = 11;int a[11] = { 1,11,21,31,41,51,61,71,81,91,101 }; int num, i; for (i = 0; i < N-1; i++) { cout << a[i] << " "; } cin >> num; for (i = 0; i < N - 2; i++) { if (num < a[i]) { for (int j=1;j<=N-i;j++) { a[N- j] = a[N - j - 1]; } a[i] = num; break; } a[N - 1] = num; } for (i = 0; i < N; i++) { cout << a[i] << " "; } system("pause"); }
有序數列的數據插入問題