1. 算法步骤
-
将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序列。
-
从头到尾依次扫描未排序序列,将扫描到的每个元素插入有序序列的适当位置。(如果待插入的元素与有序序列中的某个元素相等,则将待插入元素插入到相等元素的后面。)
function insertSort(arr) { var len = arr.length; var preIndex,curIndex; for(var i=1;i<len;i++){ preIndex = i -1; curIndex = arr[i]; while(preIndex >= 0 && arr[preIndex] >curIndex) { arr[preIndex+1] =arr[preIndex] preIndex--; } arr[preIndex+1] =curIndex } return arr; } var arr = [1,5,2,48,6,23,14] console.log(selectSort(arr)) // [1, 2, 5, 6, 14, 23, 48]