插入排序

#include <iostream>
using namespace std;
void insert_sort(int data[],int length)
{
    int i,j,iTemp;
    for(i = 1;i < length;i++){//认为前面的数据是已经排好序的,所以从第二个位置开始
        for(j = i-1;j >= 0;j--){
            if(data[j + 1] < data[j]){//相邻两个位置的数据进行比较
                iTemp = data[j];
                data[j] = data[j+1];
                data[j+1] = iTemp;
            }
            else{//若大于,则表明前面已排好序,退出本次循环
                break;
            }
        }
    }
}

void print(int data[],int length)
{
    for(int i = 0;i < length;i++){
        cout << data[i] << " ";
    }
    cout << endl;
}

int main()
{
    int data[] = {3,5,6,8,1,2,4,9,7};
    print(data,sizeof(data)/sizeof(int));
    cout << "#####################" << endl;
    insert_sort(data,sizeof(data)/sizeof(int));
    print(data,sizeof(data)/sizeof(int));
    cout << "#####################" << endl;
    return 0;
}

点赞