TopCode之手撕快排

article/2025/8/12 2:34:43

题目链接

912. 排序数组 - 力扣(LeetCode)

题目解析

算法原理

使用数组分三块的思想

i用来遍历整个数组

left用来标记<key的边界

right用来标记>key的边界

然后i进行遍历,数组就分成了四块

[l,left]<key

[left+1,i-1]==key

[i,right-1]未知

[right,r]>key

最后划分完后就是[l,left]<key,[left+1,right-1]=key,[right,r]>key

分类讨论

代码编写

class Solution {//交换void swap(int[] nums, int index1, int index2) {int tmp = nums[index1];nums[index1] = nums[index2];nums[index2] = tmp;}void quickSort(int[] nums, int l, int r) {if (r <= l) {//递归出口return;}int left = l - 1;int right = r + 1;int key = nums[(right + left) / 2];int i = l;while (i < right) {// 此时数组分成四块[l,left]<key,[left+1,i]==key,[i+1,right-1]未知,[right,r]>keyif (nums[i] < key) {// 去左边swap(nums, i++, ++left);} else if (nums[i] == key) {i++;} else {// 去右边swap(nums, i, --right);}}// 处理左边quickSort(nums, l, left);// 处理右边quickSort(nums, right, r);}public int[] sortArray(int[] nums) {quickSort(nums, 0, nums.length - 1);return nums;}
}

注意

1> 必须有出口: l>=r

2> 去右边不让i++的原因是,right-1的位置是未知的,所有交换完后i下标的数是未知的,还没有进行判断

二刷

class Solution {void swap(int[] nums, int index1, int index2) {int tmp = nums[index1];nums[index1] = nums[index2];nums[index2] = tmp;}void quickSort(int[] nums, int l, int r) {// 处理递归出口if (l >= r) {return;}// left,right标记边界int left = l - 1;int right = r + 1;// 中间值int key = nums[(right + left) / 2];// 遍历int i = l;// 数组分成四块[l,left]<key,[left+1,i-1]==key,[i,right-1]未知,[right,r]>keywhile (i < right) {if (nums[i] < key) {// 去左边swap(nums, i++, ++left);} else if (nums[i] == key) {// 直接往后走i++;} else {// 去右边swap(nums, i, --right);}}// 处理key的左边quickSort(nums, l, left);// 处理key的右边quickSort(nums, right, r);}public int[] sortArray(int[] nums) {quickSort(nums, 0, nums.length - 1);return nums;}
}


http://www.hkcw.cn/article/pZxcCQnQaZ.shtml

相关文章

vue2使用node版本启动差异

node 14.21.3启动 无需添加去除ssl的环境变量&#xff0c;npm run dev即可 node 20.12.2 版本需要添加 SET NODE_OPTIONS–openssl-legacy-provider && "dev": "SET NODE_OPTIONS--openssl-legacy-provider && vue-cli-service serve"其…

母亲多种工具打孩子10多次被立案 强制报告制度显效

近日,司法部发布了一起未成年人法律援助典型案例。江苏省某小学老师发现学生胡某某身上有多处新旧伤痕,询问后得知胡某某因不愿意上学等问题被母亲多次殴打。老师随即按照强制报告制度要求向检察机关报告。经鉴定,胡某某挫伤面积达体表面积8%,已构成轻伤一级。随后,其母亲…

多家银行5年期定存利率跌破1.3% “存5年不如存1年”现象频现

离新一轮存款降息仅过去10天,部分中小银行存款利率开始出现剧烈调整。5月30日,多家农商行、村镇银行集体宣布下调定期存款利率。五年期整存整取利率最低降至1.20%,已低于六家国有大行、招商银行等大行1.30%的存款挂牌利率水平。“存5年不如存1年”这样的现象在中小银行中并不…

塞尔维亚一军工厂突发爆炸致7人受伤 工人制作炸药时意外引爆

当地时间30日早上7时40分,塞尔维亚军工企业“克鲁希克”位于瓦列沃市的工厂发生爆炸事故,导致7名工人受伤送医。伤者均为轻伤,已出院居家休养。事故发生在工人制作军用炸药过程中,压机上的引信被意外激活引发爆炸。有1名工人头部受伤,4人出现耳鸣症状。爆炸发生后厂区秩序…

专家解读印度“阵风”折翼背后较量 体系战斗力的较量

印巴冲突中,双方出动了大批战机进行猛烈交火。过去,印巴冲突多为地面战斗,而此次出现了大规模空中作战。这不仅是双方作战平台性能的直接较量,更是两国空战体系的深层碰撞。5月7日,印度武装部队发起代号为“朱砂”的行动,打击巴基斯坦和巴控克什米尔地区的设施。随后,巴…

长沙有花店将艾草花束卖到98元 节日氛围推高需求

端午节除了吃粽子,中国人还有在门口挂艾草的习俗。为了了解长沙市场上艾草的供应情况和价格,记者进行了走访。主打节日氛围的艾草出现在了超市和花店,经过商家精心搭配后成为一束束艾草花束。在河西的一家盒马超市内,摆放着多款艾草花束,价格从19.9元到39.9元不等。盒马相…

买到演唱会铁窗视角票被退款 视野不良引争议

近日,网友小鱼在京观看某明星演唱会时遭遇了视野被遮挡的问题。她表示,自己花费1960元购买了两张票,但到达现场后发现看台边缘的护栏遮住了大半个舞台,导致视线受阻。小鱼立即向工作人员反映情况并要求换座,但被告知没有空位。随后,小鱼录下了座位视角的视频,并找到多名…

王毅会见瑞士联邦委员兼外长卡西斯 共促国际调解院发展

2025年5月30日下午,中共中央政治局委员、外交部长王毅在香港会见了出席国际调解院公约签署仪式的瑞士联邦委员兼外长卡西斯。王毅表示,卡西斯专程来港参加此次活动,体现了瑞士对建立国际调解院的支持以及在多边主义和对话协商化解分歧方面的积极态度。中方赞赏瑞士在国际事务…

顺丰回应5万元手镯仅赔67元 未保价引发争议

5月30日,话题“顺丰寄丢价值5万元手镯仅赔67元”引发热议,登上微博热搜。近日广东佛山陈小姐网购了一只价值4.98万元的翡翠手镯,收到货后不太满意,选择了退货退款。因为商家赠送了运费险,5月22日10点由指定的顺丰速运上门取件。23日晚,陈小姐接到快递员电话,称快件丢失了…

长沙有花店将艾草花束卖98元 节日氛围带动热销

端午节期间,除了吃粽子,中国人还有在门口挂艾草的习俗。5月29日,对长沙市场进行了走访。主打节日氛围的艾草出现在了超市、花店,商家将其精心搭配成一束束艾草花束。河西的一盒马超市内,角落摆放着多款艾草花束,价格从19.9元到39.9元不等。盒马相关人士表示,艾草花束这周…

腾讯高管辟谣微信已读及访客功能 反复翻炒流量引质疑

腾讯高管辟谣微信已读及访客功能 反复翻炒流量引质疑!腾讯公关总监张军针对“微信如果推出朋友圈访客”和“如果微信推出已读功能”两个热门话题进行了辟谣。他表示,不明白为何总有人反反复复地创造“如果”,前两天所谓的朋友圈访客功能也是缘起于此。他甚至怀疑,有人在特意…

男子在商场猥亵女店员 店长飞身锁喉一招制服 正义店长挺身而出

男子在商场猥亵女店员店长飞身锁喉一招制服!在湖北襄阳的一家烧烤店,一名女店员正在门口发传单迎接客人时,一名戴着头盔的黑衣男子停下脚步,突然伸出“咸猪手”摸向她的腰。女子质问对方为何碰她,却反被殴打。监控视频显示,女子推开男子并质问他,但对方不仅没有道歉,反…

中国学生在哈佛毕业典礼发表演讲 传递多元包容理念

中国学生在哈佛毕业典礼发表演讲 传递多元包容理念!5月29日,哈佛大学举行毕业典礼,来自中国青岛的江玉蓉作为毕业生代表之一发表演讲。江玉蓉成长于普通家庭,通过自身努力和天赋获得了威尔士卡迪夫一所高中的全额奖学金,并在杜克大学完成本科教育后进入哈佛大学肯尼迪学院…

博主解读福建舰核心数据,福建舰第八次海试传来硬货!

博主解读福建舰核心数据。5月24日,央视新闻正式官宣:福建舰第八次海试传来硬货!电磁弹射系统直接让美军福特号成了"反面教材"。咱用的中压直流技术有多狠?美军福特号磨了7年还在修弹射故障,福建舰测试效率直接快3倍,故障率还不到他们的1/5。甲板上歼-15T挂着实…

日本店铺整理玩具枪射出真子弹!

日本店铺整理玩具枪射出真子弹。日本店铺回收顾客旧“玩具枪” 店员整理时射出一发真子弹。日本朝日电视台5月29日报道,近日,松山市一家回收店铺发生惊险一幕。店员在收拾一箱旧“玩具枪”时,突然射出一发子弹,打穿店内隔板。店员发现弹夹和子弹都是真的,立刻报警。店员…

青海13岁少年放学后失踪已51天

4月9日,青海省海东市民和回族土族自治县13周岁的冶某鹏,在放学回家途中走失,至今已51天。孩子父亲着急万分,通过网络社交媒体求助寻找。5月29日,冶某鹏的父亲告诉记者,孩子是民和县四中学生,身高167厘米左右。当时身穿蓝色校服黑色裤子黑白色板鞋,没有带手机、身份证和…

成龙现身WNBA赛场与约内斯库合影 文化使者的篮球情缘

71岁的成龙再次成为网络热点,这次是因为他出现在WNBA纽约自由人队比赛现场的照片在网络上广泛传播。这位功夫巨星对女子篮球的兴趣引发了广泛关注。当成龙与“女库里”约内斯库在赛场边比出经典V字手势时,这张合影迅速在社交媒体上走红。这是成龙今年第三次公开支持WNBA——从…

游客在新加坡酒店吃榴莲被罚 未知规定惹麻烦

近日,一名中国游客在新加坡旅游时因在酒店房间吃榴莲被罚款200新币(约合人民币1000元)。酒店前台解释说,需要请专业人员清洁房间的榴莲味,并且房间还需空置几天。这名游客表示这是她第一次来新加坡,不了解东南亚酒店常见的相关规定。事后她已向酒店致歉并缴清了罚款。有网…

一男子掉进西安兵马俑三号坑 警方介入调查

网络视频显示,今日下午,陕西西安秦始皇兵马俑博物馆内,一名男子进入三号坑。秦始皇兵马俑博物馆相关工作人员表示,正在调查此事。三号俑坑规模较小,平面呈“凹”字形,东边有斜坡门道,东西长28.8米,南北宽24.57米,距现地表深5.2-5.4米。三号坑游览区域与俑坑交界处均有…

男子试玩儿童滑梯不堪重负倒塌 网友:给人滑梯摔疼了吧

5月28日北京,男子尝试玩耍儿童滑梯,滑梯“不堪重负”倒塌,网友:给人滑梯摔疼了吧。责任编辑:zx0002