基于数组的插入排序

2021-05-05  本文已影响0人  cursorkey

基于数组的插入排序,可以从头开始找,也可以从尾开始找,从头找需要两个循环或者一个buffer,从尾找的只用一个循环就可以,写起来相对简单。

// small -> big, tail -> head
void insert_sort(int a[], int aLen, int num) {
    int i; 
    for (i = aLen; i > 0; i--) {
        if (a[i-1] < num) {
            a[i] = num;
            return;
        }
        else {
            a[i] = a[i - 1];
        }
    }
    a[i] = num;
}

// big -> small, head -> tail
void insert_sort(int a[], int aLen, int num) {
    int i, j;
    for (i = 0; i < aLen; i++) {
        if (num > a[i]) {
            for (j = aLen-1; j > i; j--) {
                a[j] = a[j - 1];
            }
            a[i] = num;
            break;
        }
    }
上一篇 下一篇

猜你喜欢

热点阅读