news 2026/6/9 23:14:22

快速排序:双指针快排

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
快速排序:双指针快排

一、双指针快排

核心步骤:

  1. 数组分区
  2. 选择分区后的第一个元素作为锚点
  3. 左指针/右指针分别在分区后的数组中,选择大于和小于锚点的数据。找到后交换位置
  4. 最终左右指针在遍历过程中会碰头(下标相同),此时把分区后的锚点数据(第一个元素)和左右指针相同时的下标元素交换位置
  5. 再次循环排序

二、代码实现

int[]arrays={9,8,7,6,5,4,3};querysort(arrays,0,arrays.length-1);for(intarray:arrays){System.out.print(array);}}publicstaticvoidquerysort(int[]arrays,intleft,intright){if(left>=right)return;intl=left,r=right,temp=arrays[left];while(l!=r){while(arrays[r]>=temp&&l<r){r--;}while(arrays[l]<=temp&&l<r){l++;}intte=arrays[r];arrays[r]=arrays[l];arrays[l]=te;}arrays[left]=arrays[r];arrays[l]=temp;querysort(arrays,left,l-1);querysort(arrays,l+1,right);}
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 11:12:18

Pock免费快捷键大全:解锁MacBook Touch Bar的终极生产力指南

Pock免费快捷键大全&#xff1a;解锁MacBook Touch Bar的终极生产力指南 【免费下载链接】pock Widgets manager for MacBook Touch Bar 项目地址: https://gitcode.com/gh_mirrors/po/pock 想要让MacBook Touch Bar真正发挥其潜力吗&#xff1f;Pock作为一款完全免费的…

作者头像 李华
网站建设 2026/6/7 11:06:51

Oblivion Desktop跨平台通知系统:从技术挑战到优雅解决方案

在网络工具开发过程中&#xff0c;开发者面临着一个关键挑战&#xff1a;如何在复杂的网络环境下为用户提供及时、准确且不干扰的操作反馈。Oblivion Desktop作为一款基于Electron的跨平台桌面应用&#xff0c;通过创新的通知系统架构&#xff0c;成功解决了这一难题。 【免费下…

作者头像 李华
网站建设 2026/6/6 16:43:19

IO方面学习总结

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、异常1.异常分类2.异常流程3.异常的作用4.异常的处理方式JVM默认处理方案5.自己处理捕获异常6.抛出异常二、方法引用1.要求&#xff1a;2.方法引用的分类三、…

作者头像 李华
网站建设 2026/6/8 11:23:10

Kronos金融预测模型三版本深度评测:从3.2M到86M参数的性能跃迁

Kronos金融预测模型三版本深度评测&#xff1a;从3.2M到86M参数的性能跃迁 【免费下载链接】Kronos Kronos: A Foundation Model for the Language of Financial Markets 项目地址: https://gitcode.com/GitHub_Trending/kronos14/Kronos 在量化投资领域&#xff0c;模型…

作者头像 李华
网站建设 2026/6/8 14:23:12

清华virtuoso简明教程PDF资源完整指南

探索virtuoso软件的奥秘&#xff0c;从这里开始&#xff01;《清华virtuoso简明教程》PDF文档为您呈现&#xff0c;助您轻松掌握软件的核心操作与技巧。无论您是初学者还是进阶用户&#xff0c;这份详实而清晰的教程都将成为您学习道路上的得力助手。 【免费下载链接】清华virt…

作者头像 李华
网站建设 2026/6/8 14:24:02

Visual Basic 鼠标事件

除了常用的Click和DblClick事件之外&#xff0c;有些程序还需要对鼠标指针的位置和状态变化做出响应&#xff0c;因此需要使用鼠标事件MouseUp&#xff0c;MouseDown和MouseMove。当鼠标指针位于窗体上方时&#xff0c;窗体将识别鼠标事件。当鼠标指针在控件上方时&#xff0c;…

作者头像 李华