插入排序


插入排序:


每個數都會與前面的數進行比較,插入到自己應該在的位置,然後排在它後面的數,依次往後移動一位。


代碼:

#include<iostream>

#defineMAXN 10000

usingnamespace std;

 

int main()

{

    int A[MAXN];

    int i=0,j=0;

    int temp;

    int num;

 

    cin >> num;

 

    for(i=0 ; i<num ; i++){

        cin >> A[i];

    }

 

    for(j=1 ; j<num ; j++){

        temp = A[j];

        i = j-1;

        while(i>=0&&A[i]>temp){

            A[i+1] = A[i];

            i = i - 1;

            A[i+1] = temp;

        }

    }

 

    for(i=0 ; i<num ; i++){

        cout << A[i] << "";

    }

 

    cout << endl;

    return 0;

}



<-------  over ------->




for j = 2 to A.length //這行代碼的times是n,(n-1+1),最後還要判斷一次所以要加一,相類似的代碼都是這個原理

       key = A[i];   //這個的times就是n-1;


時間複雜度:插入排序對隨即順序的序列的時間複雜度也爲O(N^2),但是對於基本有序的序列進行排序時間複雜度爲O(N)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章