基于数组的插入排序

基于数组的插入排序,可以从头开始找,也可以从尾开始找,从头找需要两个循环或者一个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;
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容