快速排序-Java版本

简介: 快速排序-Java版本

具体讲解:快速排序


import java.util.Arrays;

/**
 * @Author: wangshiyu javapub rodert
 * @Date: 2021/3/28 15:04
 */
public class MyQuickSort {

    public static void main(String[] agrs) {
        MyQuickSort myQuickSort = new MyQuickSort();
        int[] arr = {3, 1, 5, 2, 4};
        myQuickSort.quickSort(arr, 0, arr.length - 1);
        for (int i : arr
        ) {
            System.out.println(i);
        }
    }

    public int[] quickSort(int[] arr, int left, int right) {
        System.out.println(Arrays.toString(arr));
        if (left < right) {
            int partitionIndex = partition(arr, left, right);
            quickSort(arr, left, partitionIndex - 1);
            quickSort(arr, partitionIndex + 1, right);
        }
        return arr;
    }

    public int partition(int[] arr, int left, int right) {
        // 设定基准值(pivot)
        int pivot = left;
        int index = pivot + 1;
        for (int i = index; i <= right; i++) {
            if (arr[i] < arr[pivot]) {
                swap(arr, i, index);
                index++;
            }
        }
        swap(arr, pivot, index - 1);
        return index - 1;
    }

    public void swap(int[] arr, int i, int j) {
        int temp = arr[i];
        arr[i] = arr[j];
        arr[j] = temp;
    }


}

目录
相关文章
|
5天前
|
Java
java中如何确保一个集合不能被修改? - 源码解读详细--JavaPub版本
java中如何确保一个集合不能被修改? - 源码解读详细--JavaPub版本
7 2
|
5天前
|
Java
启动Java 程序脚本 版本二
启动Java 程序脚本 版本二
12 0
|
13天前
|
算法 Java 大数据
Java不同版本的多线程开发:进化之路
Java不同版本的多线程开发:进化之路
20 1
|
20天前
|
Java 持续交付 开发者
Java 9及以后版本中模块化的优势与实践
【5月更文挑战第29天】随着Java语言的不断进化,Java 9引入了一个全新的模块系统(Jigsaw),旨在解决大型应用的可维护性、安全性和可扩展性问题。本文将探讨Java模块化的核心优势,并通过实例演示如何在Java 9及更高版本中实现和应用模块化技术,以帮助开发者构建更加健壮、易于管理和可重用的系统架构。
|
20天前
|
存储 Java
java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
【5月更文挑战第25天】java使用pdfbox 3.0版本删除pdf文件中指定字符所在行,生成新的pdf文件
34 1
|
22天前
|
算法 Java
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序...
<八大排序>万字详解(Java实现).插入排序、希尔排序、堆排序、快速排序、归并排序、计数排序
12 0
|
25天前
|
存储 安全 Java
剑指offer全集系列Java版本(2)
剑指offer全集系列Java版本(2)
11 0
|
25天前
|
存储 Java
剑指offer全集系列Java版本(1)
剑指offer全集系列Java版本(1)
23 0
|
27天前
|
IDE Java 编译器
Java 错误: 无效的目标发行版 5 Java: 错误: 无效的目标发行版8 Java: 错误: 不支持发行版本17Java:无效的目标发行版17
Java 错误: 无效的目标发行版 5 Java: 错误: 无效的目标发行版8 Java: 错误: 不支持发行版本17Java:无效的目标发行版17
|
1月前
|
移动开发 前端开发 Java
第一次用java17记录运行ruoyi-vue-plus5.X版本
第一次用java17记录运行ruoyi-vue-plus5.X版本
21 0