插入排序


交换实现

代码演示1
void insert_sort(int *num, int n) { //升序 
    for (int i = 1; i < n; i++) {
        for (int j = i; j > 0; j--) {
            if (num[j] < num[j - 1]) {
                swap(num[j], num[j - 1]);
            } else break;
        }
    }
    return ;
}
代码演示2
void insert_sort(int *num, int n) { //升序 
    for (int i = 1; i < n; i++) {
        for (int j = i; j > 0 && (num[j] < num[j - 1]); j--) {
            swap(num[j], num[j - 1]);
        }
    }
    return ;
}

移动实现

代码演示
void insetr_sort(int *a, int n) { //默认升序 
    for (int i = 1, j; i < n; i++) {
        int key = a[i];
        for (j = i - 1; j >= 0 && key < a[j]; j--) {
            a[j + 1] = a[j];
        }
        if (key != a[i]) a[j + 1] = key;
    }
} 

文章作者: Axieyun
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Axieyun !
评论
评论
  目录