新闻详情

新闻详情

首页 / 资讯中心 / 详情

十大排序算法之快速排序

发布时间:2026/11/13 2:34:38来源:尧图网络
十大排序算法之快速排序
一.概念通过一趟排序将要排序的数据分割成独立的两部分其中一部分的所有数据都比另外一部分的所有数据都要小然后再按此方法对这两部分数据分别进行快速排序整个排序过程可以递归进行以此达到整个数据变成有序序列。二.步骤1、首先设定一个分界值通过该分界值将数组分成左右两部分。2、将大于或等于分界值的数据集中到数组右边小于分界值的数据集中到数组的左边。此时左边部分中各元素都小于或等于分界值而右边部分中各元素都大于或等于分界值。3、然后左边和右边的数据可以独立排序。对于左侧的数组数据又可以取一个分界值将该部分数据分成左右两部分同样在左边放置较小值右边放置较大值。右侧的数组数据也可以做类似处理。4、重复上述过程可以看出这是一个递归定义。通过递归将左侧部分排好序后再递归排好右侧部分的顺序。当左、右两个部分各数据排序完成后整个数组的排序也就完成了。三.图示示例快速排序主要有三个参数left 为区间的开始地址right 为区间的结束地址Key 为当前的开始的值。从待排序的记录序列中选取一个记录通常第一个作为基准元素称为keykeya[left]然后设置两个变量left指向数列的最左部right 指向数据的最右部key6565588810613left right第一步:key 首先与 a[right] 进行比较如果 a[right]key则a[left]a[right]将这个比key小的数放到左边去如果a[right]key则我们只需要将right--right--之后再拿a[right]与key进行比较直到a[right]key交换元素为止。key65135888106left right第二步如果右边存在a[right]key的情况将a[left]a[right]接下来将转向left端拿a[left ]与key进行比较如果a[left]key,则将a[right]a[left]如果a[left]key则只需要将left,然后再进行arr[left]与key的比较。key65135888106left right135888106left right135810688left right第三步然后再移动right重复上述步骤。key6513586510688left right第四步最后得到 {13 85} 65 {106 88 }再对左子数列与右子数列进行同样的操作。最终得到一个有序的数列。13 {58} 65 {88} 10613 58 65 88 106import java.util.*; import static java.util.Collections.swap; public class Main { public static void main(String[] args) { Scanner scan new Scanner(System.in); int n scan.nextInt(); int[] a new int[n]; for (int i 0; i n; i) { a[i]scan.nextInt(); } int xa.length-1; partition(a,0,x); for (int i 0; i n; i) { System.out.print(a[i] ); } } public static int[] partition(int[]a,int left,int right){ int xa[left]; int i left; int j right; while (ij) { while ((ij)(a[j]x)) { j--; } while ((ij)(a[i]x)) { i; } if ((ij)(a[i]a[j])) { i; } else { int temp a[i]; a[i] a[j]; a[j] temp; } } if (i-1left)apartition(a,left,i-1); if (j1right)apartition(a,j1,right); return (a); } }
网站建设高端定制企业官网
RELATED

相关资讯

更多精彩内容,欢迎继续阅读

较早相关资讯

最新相关资讯

【外设】之大彩串口显示屏 2026/11/13 0:43:49

【外设】之大彩串口显示屏

大彩串口屏初步使用 1 .官网下载 STM32 屏幕 GUI 设计资料 http://www.gz-dc.com/category/typeid/4112 找到 STM32 Keil 工程,移植相关代码因项目而异进行移植,由于项目简单,本人只对用到的指令接口进行修改。 比如:注意事项&…

阅读更多 →
无法下载Windows系统iso文件 2026/11/12 23:59:09

无法下载Windows系统iso文件

当我遇到这个问题的时候,我打开了一个网站: 登录 然后我打算下载的时候: 突然那个官方的连接就可以下载了:

阅读更多 →
【清华代码熊】DeepSeek V4.1 Flash 后训练详解 2026/11/12 9:50:02

【清华代码熊】DeepSeek V4.1 Flash 后训练详解

📌 上期解析了 DeepSeek V4.1 Flash 模型架构改进,本期解析 DeepSeek V4.1 Flash 预训练/后训练技术: 🌟 预训练:45T 文本 多模态混合语料、直接训练 sparse attention(取消 DeepSeek V4 的 dense 冷启动&…

阅读更多 →
Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ... 2026/11/12 9:25:38

Shuffle-R1: Efficient RL framework for Multimodal Large Language Models via Data-centric Dynamic ...

文章主要内容和创新点 主要内容 本文聚焦于多模态大语言模型(MLLM)强化学习(RL)训练中的效率问题,提出了一个名为Shuffle-R1的框架。研究发现,当前RL训练存在两个关键缺陷: 优势值坍缩(Advantage Collapsing):批次中大多数优势值集中在零附近,导致有效梯度信号被淹…

阅读更多 →
PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction 2026/11/12 15:57:44

PRvL: Quantifying the Capabilities and Risks of Large Language Models for PII Redaction

一、文章主要内容总结 本文聚焦于利用大型语言模型(LLMs)实现个人身份信息(PII)脱敏的研究,旨在解决传统脱敏方法(如基于规则的系统、领域特定命名实体识别(NER)模型)泛化能力差、跨格式/跨语境适应性弱的问题。 研究通过全面评估多种LLM架构(包括密集型LLM(D-LLM…

阅读更多 →
LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model 2026/11/13 0:02:27

LLaVA-RE: Binary Image-Text Relevancy Evaluation with Multimodal Large Language Model

文章主要内容和创新点 主要内容 本文聚焦于二进制图像-文本相关性评估任务(判断图像与文本“相关”或“不相关”),针对该任务中文本格式多样、相关性定义随场景变化等挑战,提出了基于多模态大语言模型(MLLM)的解决方案LLaVA-RE。 模型设计:LLaVA-RE基于LLaVA 1.5架构,…

阅读更多 →

今日资讯

本周资讯

本月资讯

看完文章仍有疑问?

联系尧图顾问,获取一对一建站咨询

立即免费咨询 📞 400-888-8888
📞 ✉