分享好友 生活信息首页 生活信息分类 切换频道
手写快速排序——sort
2024-12-25 17:20

虽然功能强大的STL里的sort函数就是快速排序的实现,而且,系统的快排速度和手写的快排速度差不多。但是,我觉得还是有必要学会手写快排,至少手写的快排比系统快排更灵活,起码不需要重定义大于运算符来实现数据的从大到小排序。

一、总体思想
快速排序,简称快排,总体上来说是运用分治思想实现有序排列数据的一种排序方法。一言以蔽之:选择一个点,大的往一侧去,小的往另一侧去。再以这个点为起点和重点对两侧的数据进行同类操作,当两个区间内元素为一时,整个数据就是有序的了。因为这种排序方法对于随机数据的平均性能最好,速度最快,因此称它为快速排序。(经测试,对于100个随机数据,sort平均可以在0.015s内完成排序

二、代码实现

这里以将数组a[i]从小到大排序为例

应该很好理解。

三、注意事项

  1. 首先,快排很快,平均性能最好,但不代表不消耗时间,各种数据,各种性能都很好,对于一些特殊数据,快排的效率不如另一些排序方法高,甚至会被一些数据卡掉(解决方法是随机找寻“点”,所以,合适最好。
  2. 就像我开头说的那样,STL库里的sort函数就是快排,而且时间效率也很高,和手写的基本没差。所以如果记不下代码的,会使用sort函数也可以代替,需要时修改一下比较方式也可以,但手写sort当然还是要更灵活一些。

四、STL库中的sort比较方式的更改

好吧,感觉没什么写的了,还不想 就这么结笔,于是,我决定大发慈悲的介绍下如何更改sort的比较方式。

这里介绍个最常用的吧:将sort排序方式变为从大到小排

这样得到的a数组就是从大到小排序的

  • 小结:sort函数的使用
    sort(数组名+开始排序的下标,数组名+开始排序的下标+排序的长度,排序方式)
    其中,排序方式不写的话,自动按从小到大排序。

*注:对结构体排序,还需重载一下比较运算符,这里就不详细说明了,不知道的可以自行查阅,也可以看我的另一篇文章(嘻嘻,做广告)。

好了,关于快排就讲这么多吧,记住一条原则——小的去一侧,大的去另一侧。嗯。。。

    以上就是本篇文章【手写快速排序——sort】的全部内容了,欢迎阅览 ! 文章地址:http://w.yusign.com/tjnews/2117.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 述古往 http://w.yusign.com/mobile/ , 查看更多   
最新新闻
时光分期全国客服电话-时光分期24小时人工客服电话
时光分期24小时客服电话00861-56399-67714二线00861-52971-57932时光分期:绿色金融的新选择在当今社会,越来越多的消费者开始意
ONE(ONE币)兑换比特币今日价格行情,ONE(ONE币)今日价格行情,最新消息,ONE24小时实时汇率K线历史走势图分析
ONE是ONE生态的通证。ONE是由BigONE发行的基于以太坊ERC20合约的代币。ONE通证凝聚了BigONE交易平台及生态的所有权益,平台将秉
【A3天天酷跑下载】酷比A3天天酷跑1.0.123.0免费下载
《天天酷跑》首款跑酷网游,经典玩法酷炫坐骑,挑战QQ好友!在继承经典横版跑酷游戏的基础玩法下,新增了“下滑”操作,令游戏乐趣
新版WordPress v6.4.2体验:用SAAS、低代码和无代码的方式构建网站
2023年12月06日,Wordpress v6.4.2发布。 两天后,我迁移自己的博客到别的服务器上。之后顺带升级wordpress。升级之
百度广告推广策略深度解析与优化全揭秘
本文深度解析百度广告推广优化策略,从关键词选择、广告创意、投放策略等方面,提供全方位优化建议,助您提升广告效果,降低成本
宿州无盘教学网络改造建设
3、第三是管理维护有区别:云终端采用集中式管理只需对服务器端进行升级,无须对云终端进行维护;而无盘工作站除了安装过程繁琐
TCL“卷”向AI,创始人李东生称今年AI效益已达5.4亿元
TCL正在向外界秀出它的“AI肌肉”。“未来三到五年,AI在部分领域里可能有爆发性的机会。”12月11日,TCL创始人、董事长李东生在
曝华为Mate70系列真机泄露;文心一言用户规模达4.3亿;微软宣布.NET 9全面上线 | 极客头条
「极客头条」—— 技术人员的新闻圈! CSDN 的读者朋友们好,「极客头条」来啦,快来看今天都有哪些值得我们
用AI轻松生成高清美女写真,打造你的专属美图!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=0