SOURCE

// 插入排序把数组分类两部分,开始的时候,左边第一个,和剩下右边的, 左边第一个和右边
// 第一个比较,如果大于右边的,则移动数据,然后继续比较左边的数据, 如果小于的话,则
// 跳出当前循环,因为左边已经是排好序的

const insertionSort = list => {
    if (list.length <= 1) {
        return list;
    }

    for (let i = 1; i < list.length; i++) {
        let temp = list[i];

        for (let j = i - 1; j >= 0; j--) {
            if (list[j] > temp) {
                [list[j], list[j + 1]] = [list[j + 1], list[j]];
            } else {
                break;
            }
        }
    }

    console.log(list);
}

const arr = [10, 9, 8, 7, 6, 5, 4, 3, 2, 1];


insertionSort(arr);
console 命令行工具 X clear

                    
>
console