news 2026/5/1 9:57:28

快速排序:双指针快排

作者头像

张小明

前端开发工程师

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/4/30 16:37:30

人工智能之数学基础:离散条件分布和连续条件概率密度

本文重点 本文我们将学习条件分布,我们学习过条件概率,我们先来回忆一下条件概率,在事件B发生的条件下事件A发生的条件概率可以表示为: 这就是条件概率,现在我们学习条件分布,条件分布是有两个随机变量 X与Y,在给定Y取某个值或某些值的条件下,求X的分布,这个分布就是…

作者头像 李华
网站建设 2026/5/1 5:26:08

44、Python 网络编程中的 select 模块与异步 I/O 技术

Python 网络编程中的 select 模块与异步 I/O 技术 在 Python 网络编程中, select 模块是一个强大的工具,它提供了对 select() 和 poll() 系统调用的访问,能够在不使用线程或子进程的情况下实现多输入/输出流的轮询或多路复用处理。本文将深入探讨 select 模块的使用…

作者头像 李华
网站建设 2026/5/1 5:25:48

[Godot] 在 Godot 3.1 中配置 ADB 可执行文件的实用指南

在游戏开发过程中&#xff0c;有时我们不得不回到过去&#xff0c;使用老版本的引擎来维护或改造旧项目。尽管 Godot 4.X 已经发布&#xff0c;并带来了很多现代化的功能和架构改进&#xff0c;但对于部分遗留项目或特定需求&#xff0c;Godot 3.1 依然有其使用价值。然而&…

作者头像 李华
网站建设 2026/5/1 5:25:25

Visual Basic 拖放

在设计模式下&#xff0c;各控件都可用鼠标随意拖放的方式来改变控件的大小与位置。Visual Basic的拖放功能使用户在程序运行时也具有这种能力。拖放是指运行时将控件拖到新的位置&#xff0c;包括两个操作&#xff1a;拖动和放下。拖动是按下鼠标键并移动控件&#xff0c;而放…

作者头像 李华
网站建设 2026/5/1 5:24:36

【Dify专栏】Dify使用方式与本地部署

关于Dify的使用&#xff0c;今天介绍几种主流的使用方式与本地部署的具体教程 主流使用方式 方式一&#xff1a;使用官方提供的云服务&#xff08;比较推荐&#xff09; 不需要折腾配置&#xff0c;并且提供一定的免费功能使用&#xff0c;但是需要注意的是官方免费版本可创建的…

作者头像 李华