JavaScript算法---排序(插入排序)【3】

選擇排序是每步將一個待排序的記錄,按其關鍵碼值的大小插入前面已經排序的文件中適當位置上,直到全部插入完爲止。

原理如下圖:假定第一項已經排序,循環第一次第二項與第一項比較,判斷第二項應該待在原來位置還是插入到第一項之前。循環第二次,判斷第三項應該插入到第一或第二還是第三項的位置,以此類推。(簡單來說就是經常玩的撲克,摸牌然後把摸到的牌插入已經存在牌裏面某個位置)

代碼:

//插入排序
    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]);

排序小型數組時,此算法比選擇排序和冒泡排序性能好。

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