一分鐘幫你快速理解插入排序算法

一分鐘幫你快速理解插入排序算法

首先當你聽到這個名字的時候,重點就在插入這兩個字,舉個栗子:打麻將或者打撲克牌的時候,已經有兩張牌爲基準,比如:手裏有一張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;
}

怎麼樣,是不是一下子就把插入排序算法理解的透透的,(●ˇ∀ˇ●)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章