分享好友 最新资讯首页 最新资讯分类 切换频道
六大常见排序算法(插入、堆排、希尔、选择、冒泡、快速)
2024-12-29 05:57

多多重复,百炼成钢

 
 

 

 要求升序-建大堆
 要求降序-建小堆

步骤
 1.先找到最后一个节点,然后找到他的父亲a,在a在的堆(无序,通过向下调整把该堆调整为有序(大堆或小堆
 2. 通过 i-- 找到父亲a的前一个节点b(也是另外一个堆的父亲-b,然后在父亲b所在的堆(无序)向下调整为有序
 3.迭代往根方向往上走-最后整个堆都有序(大堆或小堆

 

向下调整

 
 

gap越大,直接插入排序就越快,反而不那么有序
gap越小,直接插入排序就越慢,反而更有序

 
 
 

思路(要求升序)把第一个元素设为最小值从这里开始找,遍历一轮数组,若找到比最小值还小的元素(遍历元素里面最小的)则交换

然后把第二个元素作为最小值从这里开始找,遍历......以此类推,到最后一个元素为止

 
 

时间复杂度-最坏(O(N^2)) 最好(O(N))

空间复杂度:O(1)

稳定性:好

 
 
 

1.优化:三数取中:三个数当中取个数值大小为中间值的值

  取出来的值作为keyi

 

霍尔排序

R找比keyi小的值,找到则停下; L找比keyi大的值,找到则停下;   然后L和R交换,依次到最后碰面,把keyi和碰面时的值交换,完成排序。

最后返回碰面的下标

 

步骤

先把key(left)所在位置作为坑位

然后R先走,找到比keyi小的值则把该值填到坑位,然后该位置为新的坑位

然后L走,找到比keyi大的值则把该值填到坑位,然后形成新的坑位

以此类推,最后碰面时作为最后的坑位,把keyi填进去

最后返回最后坑位的下标

 

步骤

cur和prev一起走:如果cur遇到比keyi大的值则prev停下,则cur继续走,之后若遇到比keyi小的值则该值与prev所在的值交换

以此类推,cur越界后prev停下,此时把prev所在值与keyi交换

最后返回prev所在的下标

 
 
 

若需要需要把数组[9,8,7,6,5,4,3,2,1,0]进行升序排列

先把下标为0 9push入栈(出栈顺序为9 0 - 对应区间为[0,9]

然后取left=0 right=9 并且都pop掉 然后对该区间[left,right]进行排序

然后分为两个区间[0,4] 5 [6,9]

然后把下标为 6 9push入栈,再把 下标为 0 4 push入栈

然后取left=0,right=9 并且都pop掉然后对该区域[left,right]进行排序

然后再分区间......

以此类推

停止排序: 要么剩下一个元素 要么元素不存在(越界

 


最新文章
神器一箩筐:创建高保真的移动Demo(工具篇)
Zoey:学习交互设计的童鞋,都躲不过画原型图这个必考科目。如何创建保真度(视觉、交互、内容)都较高的 Demo 呢,今天腾讯设计
选车还会考虑可靠吗?来看看北美2024可靠排行榜吧!
尽管说现在进入到新能源的时代,可靠性一词在新能源产品中并没有得到一定的展现和口碑效应,但对于燃油车的购买者来说,「可靠」
电脑防火墙软件哪个好 金山网盾防火墙
您好,感谢您对金山网络的支持:希望可以帮到您!微笑为您解答,如果有什么问题还可以继续咨询哦!O(∩_∩)O金山网盾具有多重安全
晋城一学生门牙被磕! 家长把学校告到教育局! 怎么办?
监控盲区的校园伤情责任如何界定?责任划分和赔偿金额双方家长各执一词,让学校焦头烂额如何妥善解决?法治副校长来帮忙!一条短
如何使用长尾关键词提高独立站的SEO效果?网站优化技巧与效果监测指南
如何选择适合的长尾关键词在选择适合的长尾关键词时,首先要理解长尾关键词的本质,它们通常由三到五个单词组成,能够更精确地反
手游折扣平台排行榜前十名 最受欢迎的手游折扣软件合集
,手游折扣平台排行榜前十名。这些折扣手游平台能通过提供各种形式的优惠活动、折扣充值以及丰富的游戏资源,极大地提升了玩家的
崇左SEO优化哪家强?精选推荐,助力排名飞升! 崇左seo哪里好
在探讨“崇左SEO哪里好”这一议题时,我们不得不深入剖析崇左这座位于广西壮族自治区的城市,在数字营销与搜索引擎优化(SEO)领
海量高清动漫免费在线观看-尽在风车动漫网
在这个数字化的时代,动漫作为一种受欢迎的文化形式,吸引了无数观众的喜爱。对于动漫爱好者来说,能够找到一个提供海量高清动漫
石家庄SEM网络推广优化,增强企业在线竞争力新引擎
石家庄SEM网络推广及优化服务,力企业提升在线市场竞争力,精准定位目标客户,优化搜索引擎排名,实现高效流量,助力企业快速拓
问了很多人都说网站的优化关键在外链的发布上怎么样提高外链接
明确外链的目的与策略在开始外链的发布之前,首先要明确外链的目的。是为了提高网站的流量,还是为了增强网站的权威性?明确目的