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