原理:插人排序每次排一個數組項,以此方式構建最後的排序數組。假定第一項已經排序了,接着, 它和第二項進行比較,第二項是應該待在原位還是插到第一項之前呢?這樣,頭兩項就已正確排 序,接着和第三項比較(它是該插人到第一、第二還是第三的位置呢?),以此類推。
圖解:
JS
'use strict'
function insertSort(array){
//console.log(array);
for(let i=1;i<array.length;i++){
console.log(i);
let j=i,tmp=array[i];
while(j>0&& array[j-1]>tmp){
array[j]=array[j-1];
j--;
console.log(array);
}
array[j]=tmp;
}
return array;
}
let array=[1,2,4,3,5,2,7,5,6];
insertSort(array);
console.log(array);