1. 程式人生 > >有序數列的數據插入問題

有序數列的數據插入問題

移動 數據位 很多 步驟 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"); }

有序數列的數據插入問題