1. 程式人生 > >C++直接插入排序

C++直接插入排序

基本思想:

           每步將一個待排序的機率按其順序碼大小插入到前面已排序的序列的合適位置(從後向前找到合適位置後),直到全部插入排序。

示例:

          57,68,59,52

第一步: 57,68,59,52    (68>57,不處理)

第二步:57,68,59,52(57<59<68,插在57後)

第三步:57,59,68,52(52<57,插在57前)

結果:52,57,59,68

c++直接插入排序程式碼:

#include<iostream>
#include<stdlib.h>
#include<time.h>
using namespace std;

int main() {
    srand((unsigned) time(0));
    int *a=new int[10];

    for(int i=0; i<10; i++) {
        a[i]=rand()%10;
        cout<<a[i]<<" ";
    }
    cout<<endl;
    for(int i=1; i<10; i++) {
        int temp=a[i];
        int k;
        for(k=i-1;k>0;k--) {
            if(temp>a[k]) {
                a[k+1]=a[k];
            } else
                break;
        }
        a[k+1]=temp;
    }

    for(int i=0; i<10; i++) {
        cout<<a[i]<<" ";
    }
    cout<<endl;

    delete a;
    return 0;
}

,