SOURCE

let arr = [10,1,35,61,89,36,55]

// 冒泡排序
// for(let i = arr.length - 1; i > 0; i --){
//     for(let j = 0; j < i; j ++){
//         if(arr[j] > arr[j + 1]){
//             let temp = arr[j]
//             arr[j] = arr[j + 1]
//             arr[j + 1] = temp
//         }
//     }
// }

// 选择排序
// let min 
// for(let i = 0; i < arr.length; i ++){
//     min = arr[i]
//     for(let j = i + 1; j < arr.length; j ++){
//         if(arr[i] > arr[j]){
//             min = arr[j]
//             arr[j] = arr[i]
//             arr[i] = min
//         }
//     }
// }

// 快速排序
 function quickSort(arr, left, right) {
     let i = left,
         j = right,
         middle = arr[left];//取基准点
     if (left >= right) {//如果数组为空或者只有一个元素,跳出递归
         return;
     };
     while (i < j) {//当i=j跳出循环
         while (arr[j] > middle && i < j) {//从右向左找第一个比基准点小的值
             j--;
         };
         while (arr[i] <= middle && i < j) {//从左向右找第一个大于等于基准点的值,注意这里可以相等,是为了保证基准点的位置不变
             i++;
         };
         if (i < j) {//交换值
             let temp = arr[i];
             arr[i] = arr[j];
             arr[j] = temp;
         }
     };
     // 当i和j相等,再和基准值交换值
     arr[left] = arr[i];
     arr[j] = middle;
     quickSort(arr, left, i - 1);//递归基准点左边的数组,并且当left>=i-1跳出递归
     quickSort(arr, i + 1, right);//递归基准点右边的数组,并且当i+1>=right跳出递归
 };
 quickSort(arr, 0, arr.length - 1);//[1, 4, 5, 6, 6, 9, 22]

console.log(arr)
console 命令行工具 X clear

                    
>
console