本文共 1254 字,大约阅读时间需要 4 分钟。
package paixu;import org.junit.Test;import java.util.Arrays;public class KuaiSu { public int getMiddle(int[] arr, int low, int high) { int temp = arr[low]; // 选取中轴值 while (low < high) { // 如果high指向的元素大于中轴值,则将high移动到中轴值前面 while (low < high && arr[high] > temp) { high--; } // 将low指向的元素与high指向的元素交换位置 arr[low] = arr[high]; // 如果low指向的元素小于等于中轴值,则将low移动到中轴值后面 while (low < high && arr[low] <= temp) { low++; } arr[high] = arr[low]; } // 将中轴值放到正确的位置 arr[low] = temp; return low; // 返回中轴的位置 } public void quickSort(int[] arr, int low, int high) { if (low < high) { int middle = getMiddle(arr, low, high); quickSort(arr, low, middle - 1); quickSort(arr, middle + 1, high); } } @Test public void test01() { int[] arr = {5, 8, 6, 4, 7, 2, 1, 5}; if (arr.length > 0) { quickSort(arr, 0, arr.length - 1); } System.out.println(Arrays.toString(arr)); }} 以上代码是对QuickSort算法的实现,主要包含两个方法:getMiddle和quickSort。getMiddle方法用于获取数组的中间索引,quickSort则是快速排序的核心方法。通过递归调用quickSort方法,将数组划分为左右两部分,直到整个数组排序完成。
转载地址:http://tyqwz.baihongyu.com/