常見的排序演算法 JS實現

2022-05-19 12:22:24 字數 2808 閱讀 6712

一、氣泡排序

1

function

bubblesort(arr) 10}

11 i--;12}

13return

arr;

14 }

二、快速排序

1

function

quicksort(array)

6var key =arr[right];

7var i = left, j =right;

8while (i

12 arr[j] =arr[i];

13while (i < j && arr[j] >key)

16 arr[i] =arr[j];17}

18 arr[j] =key;

19 sort(arr, left, j - 1);

20 sort(arr, j + 1, right);21}

22var newarr = array.concat(); //

為了保證這個函式是純函式拷貝一次陣列

23sort(newarr);

24return

newarr;

25 }

三、插入排序

1

function

insertsort(arr) else

if (j === i - 1)12}

13}14return

resultarr;

15 }

四、希爾排序

1

function

shellsort(arr) 13}

14}15return

arr;

16 }

五、選擇排序

1

function

selectsort(arr) 10}

11resultarr.push(arr[minindex]);

12 arr.splice(minindex, 1);13}

14return

resultarr;

15 }

六、堆排序堆排序詳解 (博主詳細講解了堆排序的過程)

1

//交換兩個節點

2function

swap(arr, i, j) 7//

建立大頂堆:i為父節點位置

8function

heapcreate(arr, i, length)

17//

使父節點是最大值

18if (temp

24}25//

堆排序26

function

heapsort(arr)

32//

排序33

for (var j=arr.length-1; j>0; j--)

39return

arr;

40 }

七、歸併排序1. 遞迴

1

//比較兩個序列,對其歸併排序

2function

merge(left, right) else10}

11return

temp.concat(left, right);12}

13//

遞迴14

function

mergesort(arr)

18var left = arr.slice(0, math.floor(arr.length/2));

19var right = arr.slice(math.floor(arr.length/2));

20return

merge(mergesort(left), mergesort(right));

21 }

2. 迭代

1

//比較兩個序列,對其歸併排序

2function

merge(left, right) else10}

11return

temp.concat(left, right);12}

13//

迭代14

function

mergesort(arr)

18var temp = new

array();

19for (var i=0; i)

22 temp.push(); //

防止下面j+1時溢位

23for (var group=arr.length; group>1; group=math.floor((group+1)/2))

27//

j是遞增2的,k的值比arr.length小,遺留下來的k後面的資料必須清空

28 temp[k] =;29}

30return temp[0];

31 }

常見排序演算法 JS實現

氣泡排序 bubblesort 每輪排序選出乙個最小或最大的元素再乙個個插入陣列 選擇排序 selectionsort this swap min,i 從未排序元素中挑出乙個元素挨個跟區域性有序的元素進行比較,找到對應位置插入即可 插入排序 insertsort this array j temp ...

js實現常見排序演算法

電腦配置 cpu amd x4 640 記憶體 巨集想 ddr3 1600mhz 8g 主機板 華擎 980de3 u3s3 r2.0 瀏覽器 chrome 79.0.3945.88 正式版本 64 位 時間測試函式 function testruntime fn 1.氣泡排序 2.選擇排序 3.插...

js實現常見的排序演算法

插入排序的實現 function insertsort2 arr arr j 1 temp 插入排序改進,判斷j 0 function insertsort2 arr arr j 1 temp 希爾排序 分割策略 縮小增量排序 折半插入 function shellsort arr arr k ga...