1. 程式人生 > 其它 >JavaScript 陣列排序

JavaScript 陣列排序

1、氣泡排序

兩次迴圈比較相鄰元素,交換位置

 1 function popSort(arr) {
 2         for (let i = 0; i < arr.length; i++) {
 3             for (let j = i + 1; j < arr.length; j++) {
 4                 if (arr[i] > arr[j]) {
 5                     var temp = arr[i];
 6                     arr[i] = arr[j];
 7                     arr[j] = temp;
8 } 9 } 10 } 11 return arr 12 }

2、選擇排序

找到陣列最小的元素,將它和陣列第一個元素交換位置,接下來,在剩下的元素中找到最小的元素,將它與陣列的第二個元素交換位置,往復如此,直到將整個陣列排序。基本點就是不斷地選擇剩餘元素之中的最小者。

 1 function selectSort(arr) {
 2         for (let i = 0; i < arr.length; i++) {
 3             let min = arr[i];
4 for (let j = i + 1; j < arr.length; j++) { 5 if (min > arr[j]) { 6 arr[i] = arr[j]; 7 arr[j] = min; 8 min = arr[i]; 9 } 10 } 11 } 12 13 return arr 14 }

3、快速排序

  1. 從陣列中選擇一個元素作為基準點
  2. 排序陣列,所有比基準值小的元素擺放在左邊,而大於基準值的擺放在右邊。每次分割結束以後基準值會插入到中間去。
  3. 最後利用遞迴,將擺放在左邊的陣列和右邊的陣列在進行一次上述的1和2操作
 1 function quickSort(arr) {
 2         if (arr.length <= 1) {
 3             return arr;
 4         }
 5         let num = arr[0], left = [], right = [];
 6         for (let i = 1; i < arr.length; i++) {
 7             if (arr[i] < num) {
 8                 left.push(arr[i]);
 9             } else {
10                 right.push(arr[i]);
11             }
12         }
13 
14         return quickSort(left).concat([num], quickSort(right));
15     }

4、插入排序