js常見排序演算法

2022-07-21 05:39:13 字數 1870 閱讀 1948

常見的有氣泡排序、選擇排序、歸併排序、快排、希爾排序、插入排序等 等 

1

var arr=[1,2,3,6,5,4,7,9,8];2/*

氣泡排序*/3

/*相當於是對陣列進行迴圈,相鄰的兩個進行比較,如果後面的比前面的小,調換位置,始初保持兩個數後面的是值較大的,這樣排到最後,最大的值會被調換至末尾,依次類推,完成排序*/4

function

bubblesrot(arr) 12}

13}14return

arr;15}

16//

console.log('bubblesort: '+bubblesrot(arr)); /*[1, 2, 3, 4, 5, 6, 7, 8, 9]*/

1718

19/*

選擇排序

*/20

/*相當於是從陣列中迴圈,從迴圈的範圍內找出最小的,與第乙個比較,如果比第乙個小調換位置,如下面**中,當i=0的時候,相當於第一次迴圈,所以在陣列的第二個到最後乙個範圍中選出乙個最小的,與第乙個比較,進行是否調換 ,依此類推,進行陣列排序

*/21

function

selectionsort (arr)31}

32if(index != i)37}

38return

arr;39}

40//

console.log('selectionsort:'+selectionsort(arr)); /*[1, 2, 3, 4, 5, 6, 7, 8, 9]*/

4142

/*歸併排序

*/43

/*所乙個陣列分為兩個陣列,先排好左邊,再排好右邊,然後把兩個合併到一起

*/44

function

mergesort(arr,s,e)else

if(s==e)

5051

var mindex = math.floor((s+e)/2); //中間位置的index

52var arrl = mergesort(arr,s,mindex); //

將左邊的陣列排序

53var arrr = mergesort(arr,mindex+1,e); //

將右邊的陣列排序

5455

var resultarr = ; //

結果陣列

56while(arrl.length>0 || arrr.length>0)else

6263

if(arrl.length==0)else

if(arrr.length==0)70}

71return

resultarr;72}

7374

7576

/*快速排序

*/77

/*從陣列中選乙個元素作為標準,大於這個數的放到它的右邊,小於這個數的放到它的左邊,依此類推,直到只剩下乙個元素,排序完成

*/78

function

quicksort (arr)

82var mnumindex = math.floor(arr.length/2); /*設定基數index*/

83var mnum = arr.splice([mnumindex],1)[0]; /*

獲取基數值

*/84

var left =;

85var right =;

8687

for(var i=0;i) else93}

94return

quicksort(left).concat([mnum],quicksort(right));95}

96//

console.log(quicksort(arr));

JS 常見排序演算法

氣泡排序 function bubblesort myarray return myarray function swap myarray,p1,p2 var myarray 3 44,38 5,47 15,36 26,27 2,46 4,19 50,48 var result bubblesort...

js常見排序演算法

排序演算法是js最基礎的演算法 1.氣泡排序 2.快速排序 3.選擇排序 4.插入排序 氣泡排序 氣泡排序的思想就是從左到右依次比較陣列a相鄰的兩個數,將較大的數放到後面,一輪比較之後,最大的數會排到最後面 第二輪比較後次大的數會在倒數第二的位置,直到進行a.length次比較後,陣列就會公升序排列...

常見排序演算法 js

共總結了冒泡,選擇,插入,歸併,快速,希爾,堆七種排序方式,而v8引擎sort的排序 陣列長度小於等於 10的用插入排序,其它的用快速排序。不穩定演算法 快 希 選 堆 以下是演算法可能涉及到的公共函式 排除非陣列 function checkarray array 交換兩個元素 function ...