快速排序算法

public class QuickSort { public static void main(String[] args) { int[] arr = {5, 2, 8, 3, 1, 6, 4, 7}; quickSort(arr, 0, arr.length - 1); System.out.println("排序结果:"); for (int num : arr) { System.out.print(num + " "); } }

text
复制代码
public static void quickSort(int[] arr, int low, int high) { if (low < high) { int pivot = partition(arr, low, high); // 获取基准元素的索引 quickSort(arr, low, pivot - 1); // 对基准元素的左侧子数组进行快速排序 quickSort(arr, pivot + 1, high); // 对基准元素的右侧子数组进行快速排序 } } public static int partition(int[] arr, int low, int high) { int pivot = arr[low]; // 选择第一个元素作为基准元素 int i = low, j = high; while (i < j) { while (i < j && arr[j] >= pivot) { j--; } if (i < j) { arr[i] = arr[j]; i++; } while (i < j && arr[i] <= pivot) { i++; } if (i < j) { arr[j] = arr[i]; j--; } } arr[i] = pivot; // 将基准元素放置到最终位置 return i; // 返回基准元素的索引 }

}

0个评论
点击登录,快来和大家讨论吧~
表情
图片
暂无评论
下载 APP