商务服务
2024年Go最新快速排序 详解(快速排序 双路快排 三路快排),神级Golang进阶笔记
2024-12-24 10:01

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化的资料的朋友,可以添加戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导,让我们一起学习成长

那么i怎么处理呢?很简单当i指向的元素e大于v的时候,直接包含进大于v的部分中,像这样

然后我们继续讨论下一个元素,此时i++,如图

如果元素e小于v的时候怎么做呢?只需要把元素e和橙色部分之后的一个元素交换,就可以了,此时索引j++。如图

最后i继续往后走,到最后的时候就直接将数组分成了等于v,小于v,大于v的三部分。

最后将l位置和j位置交换,就实现了快速排序的子过程,如图

下面是快速排序代码使用template模板泛型是因为我们有的时候不仅仅是需要对int数组进行排序,还可能是浮点数,字符串,甚至是结构体,类进行排序

 

大家知道,快速排序虽然高效,但并不稳定,当数组中存在大量重复元素时,比如举个例子,我用模板测试归并排序和快速排序的时间,设置一个1000000的数组,数组元素在0-10之间随机取值,那么用归并需要花费0.290727s而快排需要花费171.151s,对,你没有看错。当快速排序最优的时候是o(nlgn,而此时显然退化到了o(n^2)的级别。这是为什么

还记得上面我写的快排的子过程么,考虑到了e>v,e<v,而e=v的情况没有考虑对吧。看了代码理解了的同学应该清楚,其实我是把等于v这种情况包含进了大于v的情况里面了,那么会出现什么问题不管是当条件是大于等于还是小于等于v,当数组中重复元素非常多的时候,等于v的元素太多,那么就将数组分成了极度不平衡的两个部分,因为等于v的部分总是集中在数组的某一边。

那么一种优化的方式便是进行双路快排

双路快排(我看百度百科上面的快排题解c语言版好像用的就是双路快排

和快排不同的是此时我们将小于v和大于v的元素放在数组的两端,那么我们将引用新的索引j的记录大于v的边界位置。如图

i索引不断向后扫描,当i的元素小于v的时候继续向后扫描,直到碰到了某个元素大于等于v。j同理,直到碰到某个元素小于等于v。如图

2024年Go最新快速排序 详解(快速排序 双路快排 三路快排),神级Golang进阶笔记

然后绿色的部分便归并到了一起,而此时只要交换i和j的位置就可以了,然后i++,j–就行了。如图

直到i和j遍历完毕,整个数组排序完成。

这种优化当它遇到重复元素的时候,也能近乎将他们平分开来。

双路快排代码如下

 

当然除了快排和双路快排,还有一个更加经典的优化,我们叫它三路快排

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

如果你需要这些资料,可以戳这里获取

[外链图片转存中…(img-NeLAFhGf-1715648377841)]
[外链图片转存中…(img-9NWszw4S-1715648377842)]
[外链图片转存中…(img-idM580oM-1715648377842)]

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上Go语言开发知识点,真正体系化

由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新

    以上就是本篇文章【2024年Go最新快速排序 详解(快速排序 双路快排 三路快排),神级Golang进阶笔记】的全部内容了,欢迎阅览 ! 文章地址:https://sicmodule.kub2b.com/news/9736.html
     栏目首页      相关文章      动态      同类文章      热门文章      网站地图      返回首页 企库往资讯移动站 https://sicmodule.kub2b.com/mobile/ , 查看更多   
最新文章
运营师抖音代运营
运营师抖音代运营:掌握流行短视频潮流的神奇职业短视频平台已经成为人们娱乐、学习和社交的重要方式。在众多的短视频平台中,抖
微短剧,2024年“最大赢家”? | 年终盘点
2024,短剧行业大变样。作者 | 张语格编辑 | 趣解商业文娱组“互联网大厂争相入局。”“98%的短剧制作方都在亏钱。”“用户被免
同类第一!20%弹性的人工智能 ETF 科创(588760)今日上市,一键布局科创板优质AI龙头
  最新公告内容显示,广发上证科创板交易型开放式指数投资基金(基金代码:588760;扩位简称: ETF 科创)已于 2025 年 1 月 1
如何使用关键词排名提升工具
随着互联网的飞速发展,自媒体行业逐渐成为热门领域,许多自媒体作者希望通过优质内容吸引更多粉丝,提高自己的知名度,在众多竞
2025快手广告跳转微信如何实现?配置详解
​​快手作为中国领先的短视频平台,拥有庞大的用户基础和高度的用户活跃度,为品牌提供了一个巨大的流量池。然而,如何将这些流
Tiktok专题
随着TikTok在全球范围内的爆发式增长,越来越多的品牌和企业开始关注这个平台,并寻找适合他们的产品来进行市场推广。想要在TikT
什么兼职最赚钱最快速?盘点适合负债者的10个副业
在当下经济环境下,许多人可能面临负债的压力,包括买房、买车等等,寻找一份能够快速赚钱的兼职成为了许多人的迫切需求。那么,
Google回击设计_今日google搜索Google设计教程
摘要:Google回击设计,今日google搜索Google设计教程,新片场素材小编舒子颖Google回击设计,今日google搜索Google设计教程相关内
关键词排名上不去怎么办(关键词排名靠前原因)
本文目录导读:关键词选择外链建设持续优化注意事项随着自媒体行业的不断发展,越来越多的创作者加入了这个大家庭,在激烈的竞争
A股市场昨有所回落 小红书概念股继续走强
每经记者:杨建    每经编辑:赵云1月14日,A股市场全天高开高走,三大指数放量大涨。1月15日,A股市场有所回落。截至收盘,