如何实现Java快速排序算法代码使用for循环

一、流程概述

首先,我们来了解一下Java快速排序算法的基本流程。下面是这个算法的步骤:

步骤 描述
1 选择一个基准元素作为比较对象
2 把比基准元素小的放到左边,大的放到右边
3 递归处理左右两边的子数组

二、实现步骤

1. 定义快速排序方法

public void quickSort(int[] arr, int left, int right) {
    if (left < right) {
        int pivot = partition(arr, left, right);
        quickSort(arr, left, pivot - 1);
        quickSort(arr, pivot + 1, right);
    }
}
  • arr:待排序的数组
  • left:子数组的起始索引
  • right:子数组的结束索引

2. 划分子数组

public int partition(int[] arr, int left, int right) {
    int pivot = arr[right];
    int i = left - 1;

    for (int j = left; j < right; j++) {
        if (arr[j] < pivot) {
            i++;
            int temp = arr[i];
            arr[i] = arr[j];
            arr[j] = temp;
        }
    }

    int temp = arr[i + 1];
    arr[i + 1] = arr[right];
    arr[right] = temp;

    return i + 1;
}
  • arr:待排序的数组
  • left:子数组的起始索引
  • right:子数组的结束索引
  • pivot:基准元素

3. 调用快速排序方法

int[] arr = {9, 2, 4, 7, 3, 7, 10};
quickSort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));

三、类图

classDiagram
    QuickSort {
        int[] arr
        int left
        int right
        + void quickSort(arr, left, right)
        + int partition(arr, left, right)
    }

以上就是实现Java快速排序算法代码使用for循环的方法。希望能帮助你理解并掌握这个算法。如果还有任何问题,欢迎随时向我提问。祝学习顺利!