/**

  • 快速排序

  • @param arr 待排序的数组

  • @param left 数组左边界

  • @param right 数组右边界 */ public static void quickSort(int[] arr, int left, int right) { if (left < right) { int i = left; // 左指针 int j = right; // 右指针 int pivot = arr[left]; // 基准数,取左边第一个数

     while (i < j) {
         // 从右往左找到第一个小于基准数的数
         while (i < j && arr[j] >= pivot) {
             j--;
         }
         if (i < j) {
             arr[i] = arr[j]; // 将该数放到左边
         }
    
         // 从左往右找到第一个大于基准数的数
         while (i < j && arr[i] <= pivot) {
             i++;
         }
         if (i < j) {
             arr[j] = arr[i]; // 将该数放到右边
         }
     }
    
     arr[i] = pivot; // 将基准数放到最终位置
    
     // 递归处理左右两个子数组
     quickSort(arr, left, i - 1);
     quickSort(arr, i + 1, right);
    

    } }

用java写一个快速排序带注释的

原文地址: https://www.cveoy.top/t/topic/sSk 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录