js幾種排序的實現

2022-08-21 05:48:12 字數 1348 閱讀 7525

1、氣泡排序

思想:比較相鄰的前後兩個資料,如果前面的大於後面的,就交換兩個資料位置,知道遍歷完陣列,排序完成。

實現:

function

bubblesort(arr) }}

return

arr;

}console.log(bubblesort([5,9,8,6,2,3,7])

2、選擇排序

思想:第一次遍歷陣列找出最小的值與第乙個元素交換,第二次遍歷n-1個資料,找出最小的值與第二個元素交換,直到排序完成。

實現:

function

selectsort(arr)

temp =arr[i];

arr[i] =arr[min];

arr[min] =temp;

} return

arr;

}console.log(selectsort([6,5,2,4,3,7]))

3、快速排序

思想:先從陣列找設定乙個基準數(任意,一般取中間);將比基準數打的全放在它的右邊,小的放在左邊;在對左右兩個區間重複第1、2步,直到區間各剩乙個數。

實現:

function

quicksort(arr)

var pivoindex = math.floor(arr.length / 2);//

取中間數為基數

var pivot = arrr.splice(pivoindex,1)[0]; //

取基準點值,splice(index,1)函式可以返回陣列中被刪除的那個數

var left = ;//

存放比基準點小的陣列

var right = ; //

存放比基準點大的陣列

for(var i = 0;i < arr.length;i++)

else}//

遞迴執行以上操作,對左右兩個陣列進行操作,直到陣列長度<=1

return

quicksort(left).concat([pivot],quick(right))

}

4、插入排序

思想:從第乙個元素開始,該元素可以認為已經被排序;

取出下乙個元素,在已經排序的元素序列中從後向前掃瞄;

如果該元素(已排序)大於新元素,將該元素移到下一位置;

重複步驟3,直到找到已排序的元素小於或者等於新元素的位置;

將新元素插入到該位置後;

重複步驟2~5。

function

insertsort(arr)

arr[j + 1] =key;

}return

arr;

}

js常見的幾種排序演算法

最近自己總結了js常見的幾種排序演算法,並進行了簡單的測試和對比。包括 氣泡排序,插入排序,選擇排序,快速排序,歸併排序等。氣泡排序比較簡單,就是從前往後依次比較相鄰的兩個值,如果前乙個大於後乙個值就交換位置,一趟之後最大的值就排在最後一位了,然後同理在排序剩下的n 1 n 2 個數 如下 func...

js陣列中的幾種排序

每輪依次比較相鄰兩個數的大小,後面比前面小則交換 var b 0 設定用來儲存調換位置的值 var a 1,9,33,2,5,34,23,98,14 氣泡排序 for var i 0 i i console.log a 1,2,5,9,14,23,33,34,98 function sortnumb...

JavaScript實現的幾種排序

原理 氣泡排序的過程就是將陣列中相鄰的兩個元素進行比較,如果前面的元素比後面的元素要大交換位置,否則位置不變 舉個栗子 有陣列 arr 3,5,4,2,1 第一輪迴圈 3和5比較,3小於5兩者位置不變,接下來5和4比較,5大於4,兩者交換位置,接著5和2比較,5 2兩者交換位置,繼續5和1 比較 5...