一分鐘幫你快速理解插入排序算法
首先當你聽到這個名字的時候,重點就在插入這兩個字,舉個栗子:打麻將或者打撲克牌的時候,已經有兩張牌爲基準,比如:手裏有一張1萬和3萬,這時候你摸到了一張2萬,那麼就會把這張二萬插入到1萬和3萬之間;鬥地主的時候同理,手裏有3、4、6、8,這時摸到一張5,就要把這張5先跟最後一位8比較,5比8小,往前移一位,再跟6比較,比6也小,再往前移一位,這時跟4比較,比4大,比6小,ok,插入到4和6中間,它的工作原理是通過構建有序序列,對於未排序數據,在已排序序列中從後向前掃描,找到相應位置並插入這就是插入排序算法。
下面再配合一張圖讓你更加容易理解
接下來再用代碼實現一下插入排序方法:
function insertSort(arr) {
var len = arr.length;
var lastIndex, currentNumber;
for (var i = 1; i < len; i++) {
lastIndex= i - 1;
currentNumber= arr[i];
while(lastIndex>= 0 && arr[lastIndex] > current) {
arr[lastIndex+1] = arr[lastIndex];
lastIndex--;
}
arr[lastIndex+1] = currentNumber;
}
return arr;
}
怎麼樣,是不是一下子就把插入排序算法理解的透透的,(●ˇ∀ˇ●)