排序——插入排序

末鹿安然 提交于 2020-01-09 00:33:34

插入排序

原理

插入排序是最为直观的排序算法。它的原理就是对于已经被排序的序列构建一个有序数列,然后对于未处理的数据,在每次排序的时候遍历有序数列,找到插入的位置,然后把这个位置之后的所有元素向后移一位,把这个位置空出来给当前元素。

步骤

1、将原数列中的第一个元素视为一个有序数列,视第二个元素至最后一个元素为未排序元素。
2、从头至尾扫描整个未排序数列,然后将扫描到的每个元素插入到有序数列中的适当位置。

void insert_sort(int num[], int len) {
    for (int i = 1; i < len; i++) {
        int temp = num[i];
        int j = i;
        while (j > 0 && num[j - 1] > temp) {
            num[j] = num[j - 1]; // 往后移
            j--;
        }
        num[j] = temp; // 插入
    }
}

insert_sort

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!