算法排序篇——插入排序 发表于 2018-11-04 | 分类于 算法 123456789101112131415function insertSort(arr){ // 假设第一个数是已排序的,那么未排序就从第二个数开始,依次从未排序数组中取值,到已排序数组中比较 for(let outer = 1; outer <= arr.length -1; outer++){ // 将未排序的数遍历已排序的数组 for(let inner = 0; inner <= outer -1; inner++){ // 如果未排序的数比已排序的数小,这里有个技巧,直接从前往后遍历,就可以直接将要插入的值用splice插入 if(arr[outer] < arr[inner]){ // 插入到已排序的、比它大的数的前面 arr.splice(inner, 0, arr[outer]); // 将其自身从未排序数组中删除,这里的outer + 1是因为,前面执行了添加,导致数组都整体往后移动一位,所以被插入的数组索引加一 arr.splice(outer + 1, 1); } } }}