常見的有氣泡排序、選擇排序、歸併排序、快排、希爾排序、插入排序等 等
1var 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 ...