十大經典排序演算法系列 二 插入排序

2021-09-01 20:58:38 字數 1052 閱讀 8382

原理

1 元素依次比較大小, 按條件交換位置

2 交換過位置的元素, 往回與之前的元素比較大小, 找到插入的位置,直到不符合交換位置的條件.跳出迴圈

3 繼續外層迴圈

var arr = [ 0, 0, 1, 2, 3, 4, 5, 6, 12, 22, 123, 333, 333, 444, 555, 666, 777, 888, 999];

function instersort(arr)

return false;

}for(let i = 0; i < arrlenght; i++)

}console.log('swapall: ' + swapall);

console.log('forloop: ' + countall);

return arr;

}console.log(instersort(arr));

swapall: 169

forloop: 169

[ 999, 888, 777, 666, 555, 444, 333, 333, 123, 22, 12, 6, 5, 4, 3, 2, 1, 0, 0 ]

下面是簡潔版:

var arr = [0, 1, 2, 5, 10, 12, 22, 50, 91, 123, 300, 444, 500, 666, 999, 1000, 1010]

, count = 0;

function instersort(arr)

}return arr;

}console.time('s');

var re = instersort(arr);

console.timeend('s');

console.log(

re, count

);

s: 0.672ms

[ 1010, 1000, 999, 666, 500, 444, 300, 123, 91, 50, 22, 12, 10, 5, 2, 1, 0 ] 136

cpu  i5-4590

十大經典排序演算法 插入排序

插入排序 insertion sort 的演算法描述是一種簡單直觀的排序演算法。它的工作原理是通過構建有序序列,對於未排序資料,在已排序序列中從後向前掃瞄,找到相應位置並插入。把n個待排序的元素看成為乙個有序表和乙個無序表。開始時有序表中只包含1個元素,無序表中包含有n 1個元素,排序過程中每次從無...

十大經典排序演算法系列 六 計數排序 js版

整數排序 0 99 最好的演算法 1 把排序元素的值 當 tmparr陣列的索引,計數出現次數,2 遍歷 tmparr,按照 value 值的個數,unshift push tmparr 索引值 到 newarr 完成排序 use strict var arr 0,0,1,2,3,4,5,10,12...

十大經典排序演算法

載自 排序演算法是 資料結構與演算法 中最基本的演算法之一。排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存。常見的內部排序演算法有 插入排序 希爾排序 選擇排序 氣泡排序 歸併排序 快速排...