快速排序 Java 实现 + 思路详解
一、核心思想分治思想选基准 (pivot)从数组中挑选一个元素作为基准值分区 (partition)把小于基准的元素放左边大于基准的放右边一轮结束后基准元素落在它最终正确位置递归基准左侧子数组、右侧子数组重复上面两步直到子数组长度 ≤ 1天然有序。算法特性平均时间复杂度\(O(nlogn)\)最坏时间复杂度\(O(n^2)\)如已有序数组选最左当基准空间复杂度\(O(logn)\) 递归栈不稳定排序二、实现方式左右指针法最常考java运行public class QuickSort { public static void main(String[] args) { int[] arr {4, 7, 2, 9, 1, 5, 8, 3, 6}; System.out.println(排序前); printArr(arr); quickSort(arr, 0, arr.length - 1); System.out.println(排序后); printArr(arr); } /** * 快速排序递归入口 * param arr 数组 * param left 左边界下标 * param right 右边界下标 */ public static void quickSort(int[] arr, int left, int right) { // 递归终止条件区间只有一个元素或不存在元素 if (left right) { return; } // 分区返回基准元素最终位置 int pivotIndex partition(arr, left, right); // 递归处理左区间 [left, pivotIndex-1] quickSort(arr, left, pivotIndex - 1); // 递归处理右区间 [pivotIndex1, right] quickSort(arr, pivotIndex 1, right); } /** * 分区函数左右指针法以最左侧元素为基准 */ public static int partition(int[] arr, int left, int right) { // 选取最左边元素作为基准 int pivot arr[left]; int i left; int j right; while (i j) { // 右指针往左找找到 小于pivot 的元素 while (i j arr[j] pivot) { j--; } // 将找到的小数放到i位置 arr[i] arr[j]; // 左指针往右找找到 大于pivot 的元素 while (i j arr[i] pivot) { i; } // 将找到的大数放到j位置 arr[j] arr[i]; } // i j基准放入最终位置 arr[i] pivot; return i; } // 打印数组 public static void printArr(int[] arr) { for (int num : arr) { System.out.print(num ); } System.out.println(); } }三、分区流程简单演示数组[4,7,2,9,1]pivot 4j 向左找到 1放到 i 位置 →[1,7,2,9,1]i 向右找到 7放到 j 位置 →[1,7,2,9,7]j 向左找到 2放到 i 位置 →[1,2,2,9,7]i 继续右移ij填入基准 4 →[1,2,4,9,7]基准 4 就位再递归排序[1,2]和[9,7]四、常见优化点面试加分基准优化不要固定选最左采用「三数取中法」(左端、右端、中间选中位数当 pivot)避免有序数组触发最坏情况小区间优化当子数组长度很小如长度 10改用插入排序减少递归开销处理重复元素三路快排小于、等于、大于基准三段大量重复数据时效率大幅提升。

相关新闻

通风管道一站式工程服务模式行业发展分析

通风管道一站式工程服务模式行业发展分析

在现代建筑和工业领域中,风管起着至关重要的作用。它是空气输送和分配的关键通道,直接影响着室内环境的舒适度、空气质量以及工业生产过程中的通风需求。一个优质的风管系统不仅能保障空气的顺畅流通,还能降低能耗,提高整个系统的…

2026/7/23 12:53:31阅读更多 →
北京华恒智信破解国有维修企业忙闲不均、干多干少一个样难题

北京华恒智信破解国有维修企业忙闲不均、干多干少一个样难题

【客户行业】服务行业【问题类型】薪酬绩效【客户背景】某大型车辆维修公司隶属于某大型旅游服务集团,该集团是国资委下属的一家以旅游景区管理、旅游客运为龙头,集娱乐休闲、宾馆接待、会议度假为一体的综合性国有企业。该维修公司作为它的组成部分&…

2026/7/23 12:53:31阅读更多 →
计算机毕业设计之基于SpringBoot的人工智能知识科普平台设计与实现

计算机毕业设计之基于SpringBoot的人工智能知识科普平台设计与实现

摘要随着互联网技术的迅猛发展和人工智能技术的日益普及,构建一个高效、便捷的人工智能知识科普平台变得尤为重要。传统的知识传播方式存在时空限制,而基于Spring Boot的平台能够利用其快速开发和部署的优势,打破这些限制。基于Spring Boot的…

2026/7/23 12:53:31阅读更多 →
TI bq27505-J2阻抗跟踪电量计:PFC配置、工作模式与寄存器详解

TI bq27505-J2阻抗跟踪电量计:PFC配置、工作模式与寄存器详解

1. 项目概述与核心价值在便携式电子设备的设计中,电池管理单元(BMU)的精度和可靠性直接决定了用户体验。你是否遇到过设备电量显示突然跳变、在低温环境下电量骤降,或者明明显示还有20%电量却瞬间关机的尴尬?这些问题的…

2026/7/23 14:20:02阅读更多 →
汽车电子EMI治理实战:高边开关与电机驱动噪声抑制全解析

汽车电子EMI治理实战:高边开关与电机驱动噪声抑制全解析

1. 项目概述:直面汽车电子的“隐形杀手”在汽车电子,尤其是车身电子与照明系统的设计前线摸爬滚打了十几年,我越来越深刻地体会到,一个项目的成败,往往不取决于那些光鲜亮丽的功能实现,而在于能否驯服一个看…

2026/7/23 14:20:02阅读更多 →
工控系统开发:PLC选型、Qt HMI优化与上位机架构设计

工控系统开发:PLC选型、Qt HMI优化与上位机架构设计

1. 工控系统开发的核心挑战与选型逻辑 在工业自动化领域,中高端工控系统的开发从来不是简单的技术堆砌。我经历过多个从零搭建的产线改造项目,最深刻的体会是:选型失误导致的系统重构成本,往往是初期开发成本的3-5倍。当前主流工控…

2026/7/23 14:20:02阅读更多 →
APP闪退问题分析与优化实战指南

APP闪退问题分析与优化实战指南

1. 为什么新APP上线首周闪退问题频发? 刚上线的APP遭遇"闪退"和"打不开"差评,这几乎是每个开发团队都会经历的噩梦。根据行业数据统计,约78%的新应用在上线第一周会收到此类负面反馈。究其原因,主要存在以下几…

2026/7/23 14:20:02阅读更多 →
什么是商户进件?

什么是商户进件?

商户进件,简单来说就是商家向支付平台上交经营相关证件,申请开通收款渠道。需要准备营业执照、法人身份证、收款银行卡以及门店经营相关证明。操作流程:提交全部资料后等待平台风控审核,审核通过就能正常收款。一方面这是商家开通…

2026/7/23 14:20:02阅读更多 →
剧情知识图谱驱动的 NPC 动态对话:从意图识别到可信生成

剧情知识图谱驱动的 NPC 动态对话:从意图识别到可信生成

剧情知识图谱驱动的 NPC 动态对话:从意图识别到可信生成 一、对话系统的老难题:树状脚本撑不住开放提问 传统 NPC 对话靠手写分支树,玩家问一句脚本外的话,NPC 就只能回"……"或跳回默认。分支爆炸让策划疲于补线&#…

2026/7/23 14:18:02阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/23 0:56:31阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/23 0:56:31阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/23 0:56:31阅读更多 →
Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具

Chitchatter完整指南:免费开源的终极点对点安全聊天工具 【免费下载链接】chitchatter Secure peer-to-peer chat that is serverless, decentralized, and ephemeral 项目地址: https://gitcode.com/gh_mirrors/ch/chitchatter Chitchatter是一款革命性的安…

2026/7/23 0:00:28阅读更多 →
从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表)

更多请点击: https://intelliparadigm.com 第一章:从单点好评到指数级传播:AI副业主理人必须掌握的4层口碑渗透模型(含ROI测算表) 当AI副业主理人不再仅满足于单次服务交付,而是主动构建可复用、可裂变、可…

2026/7/23 0:00:28阅读更多 →
油泥处理设备哪里能买到

油泥处理设备哪里能买到

油泥处理设备哪里有?这是许多从事油田、炼化、清罐业务的从业者最关心的问题。根据河南三丰环保设备有限公司的行业经验,选购油泥处理设备的核心在于设备能否适配当地环保法规与原料特性,而非单纯看价格。该公司总经理王钦田先生指出&#xf…

2026/7/23 0:00:28阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/22 22:56:18阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/22 18:55:50阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/22 18:55:50阅读更多 →