06-插入排序

插入排序:

插入排序的原理是通过构建有序序列,对于未排序的数据,在已排序序列中从后向前扫描,找到相应位置并插入。与我们玩纸牌去排牌一样。

var arr = [5, 100, 25, 36, 42, 4, 2, 7, 389, 12, 8];

function insertSort(arr) {
    let len = arr.length;
    for (var i = 1; i < len; i++) {
        let cur = arr[i];
        let j = i - 1; //第一位
        // 前一项>当前项的时候
        while (j >= 0 && arr[j] > cur) {
            // 就一直往前找,也叫扫描前面的数值
            arr[j + 1] = arr[j]; //把前一项赋值给后一项(arr[j+1] 也就是 arr[i])也叫赋值或者说换位置
            j--;
        }
        // 直到打破while循环的条件语句,arr[j+1]就是当前for循环中的arr[i]所在的位置
        // 然后for循环继续执行i++,继续走while判断,重复这个过程
        arr[j + 1] = cur;
    }
    return arr;
}
let res = insertSort(arr);
console.log(res);

 

posted @ 2021-06-19 01:20  猎奇游渔  阅读(26)  评论(0编辑  收藏  举报