02_插入算法

来源:互联网 发布:龙珠直播软件 编辑:程序博客网 时间:2024/06/05 18:27

插入排序(从小到大排序)算法解析:
其实就是将数组分成两批,第一批是有序的数组,第二批是待排序的数组;将后面待排序的每个数组元素与第一批有序的数组比较,当满足条件时候插入即可。
例如:先假设第一批有序数组是一个元素,然后再后面的9个元素中取第一个与之比较,如果小于第一个有序数组的第一个元素,就将有序数组的最后一个元素退后一位;以此类推,依次将无序数组中第一元素与有序数组中的最后一个到有序数组中的第一个比较。

void wei::Chen::showArr(int arr[], int len) {    for (int i = 0; i < len; ++i ) {        cout << arr[i] << "  ";    }    cout << endl;}void wei::Chen::insertSort(int arr[], int len) {/*假设有序数组的起始元素只有一个就是arr[0]*/    for( int i = 1; i < len; ++i ) {    /*1、使用临时变量temp来保存无序数组的第一个元素,后边在移动时候会替换这个位置(条件满足时)    *2、使用k变量保存下标,    */        int temp = arr[i];         int k = i;        for( int j = i - 1; j >= 0; --j ) {            if( arr[j]>temp ) {                arr[k] = arr[j];                k = j;            }else{                break ;            }        }        arr[k] = temp;    }}
原创粉丝点击