插入排序

来源:互联网 发布:structure软件 使用 编辑:程序博客网 时间:2024/04/30 16:02


插入排序:


每个数都会与前面的数进行比较,插入到自己应该在的位置,然后排在它后面的数,依次往后移动一位。


代码:

#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)

1 0
原创粉丝点击