選擇排序是每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完爲止。
原理如下圖:假定第一項已經排序,循環第一次第二項與第一項比較,判斷第二項應該待在原來位置還是插入到第一項之前。循環第二次,判斷第三項應該插入到第一或第二還是第三項的位置,以此類推。(簡單來說就是經常玩的撲克,摸牌然後把摸到的牌插入已經存在牌裏面某個位置)
代碼:
//插入排序
var insertionSort = function(array) {
var length = array.length,j,temp;
//默認第一項已經排序所以i=1
for(var i = 1; i < length; i++){
temp = array [i];
j = i;
while(j>0&&array[j-1]>temp){
array[j] = array[j-1];
j--
}
array[j] = temp;
}
console.log(array)
}
insertionSort([4,2,56,7,3,11,8]);
排序小型數組時,此算法比選擇排序和冒泡排序性能好。