用java写一个快速排序带注释的
/**
-
快速排序
-
@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);} }
原文地址: https://www.cveoy.top/t/topic/sSk 著作权归作者所有。请勿转载和采集!