返回列表
algorithm #插入排序 #算法 #排序算法 #10大算法

插入排序详解

FD
Flame Dream
2024年3月15日 2 分钟阅读 0

插入排序是一种比较直观的排序方式。插入排序:把未排序的数组中第一个元素当作一个有序的数组,取剩余未排序的第一个元素,和有序数组的最后一个元素比较,如果小于最后一个元素,最后一个元素后移一位,直到找到合适的位置插入。循环执行上述操作,直达未排序的元素执行完。(这个类似于打牌,洗牌)

插入排序还可以进行一些优化(插入操作过程中,进行二分查找对比,进行插入操作)

1.算法步骤

  • 数组的第一个元素当作一个有序的数组,把第二个元素到最后一个元素当作未排序的数组。
  • 从未排序数组中取出首个元素A(剩余元素成为新的未排序数组),逆向循环(从尾部到首部)从有序数组取出元素B进行对比,如果A小于元素B,元素B向后移一位。(如果小于B,则把元素A插入到B元素后的位置)。
  • 循环执行步骤2,执行完未排序数组。

2.算法演示流程

Chooce Sort

3.算法代码

function insertSort(arr){
    var len = arr.length;
    var preIndex, current;
    for(var i = 1, i < len - 1; i++){
        preIndex = i - 1;
        current = arr[i];

        while(preIndex >= 0 && arr[preIndex] > current){
            arr[preIndex + 1] = arr[preIndex];
            preIndex--;
        }
        arr[preIndex + 1] = current;
    }

    return arr;
}
分享