- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Java实现的几个常用排序算法详细解读
2012-06-27 15:33 easense2009 博客园?字号:T?|?T
排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。废话不多说,下面逐一看看经典的排序算法。
AD:2013云计算架构师峰会课程资料下载
排序算法很多地方都会用到,近期又重新看了一遍算法,并自己简单地实现了一遍,特此记录下来,为以后复习留点材料。
废话不多说,下面逐一看看经典的排序算法:
1. 选择排序
选择排序的基本思想是遍历数组的过程中,以 i 代表当前需要排序的序号,则需要在剩余的 [i…n-1] 中找出其中的最小值,然后将找到的最小值与 i 指向的值进行交换。因为每一趟确定元素的过程中都会有一个选择最大值的子流程,所以人们形象地称之为选择排序。
举个实例来看看:
初始:?[38,?17,?16,?16,?7,?31,?39,?32,?2,?11] ??
i?=?0:??[2?,?17,?16,?16,?7,?31,?39,?32,?38?,?11]?(0th?[38]-8th?[2]) ?
?
i?=?1:??[2,?7?,?16,?16,?17?,?31,?39,?32,?38,?11]?(1st?[38]-4th?[17]) ?
?
i?=?2:??[2,?7,?11?,?16,?17,?31,?39,?32,?38,?16?]?(2nd?[11]-9th?[16]) ?
?
i?=?3:??[2,?7,?11,?16,?17,?31,?39,?32,?38,?16]?(?无需交换?) ?
?
i?=?4:??[2,?7,?11,?16,?16?,?31,?39,?32,?38,?17?]?(4th?[17]-9th?[16]) ?
?
i?=?5:??[2,?7,?11,?16,?16,?17?,?39,?32,?38,?31?]?(5th?[31]-9th?[17]) ?
?
i?=?6:??[2,?7,?11,?16,?16,?17,?31?,?32,?38,?39?]?(6th?[39]-9th?[31]) ?
?
i?=?7:??[2,?7,?11,?16,?16,?17,?31,?32,?38,?39]?(?无需交换?) ?
?
i?=?8:??[2,?7,?11,?16,?16,?17,?31,?32,?38,?39]?(?无需交换?) ?
?
i?=?9:??[2,?7,?11,?16,?16,?17,?31,?32,?38,?39]?(?无需交换?)?
由例子可以看出,选择排序随着排序的进行( i 逐渐增大),比较的次数会越来越少,但是不论数组初始是否有序,选择排序都会从 i 至数组末尾进行一次选择比较,所以给定长度的数组,选择排序的比较次数是固定的: 1 + 2 + 3 + …. + n = n * (n + 1) / 2 ,而交换的次数则跟初始数组的顺序有关,如果初始数组顺序为随机,则在最坏情况下,数组元素将会交换 n 次,最好的情况下则可能 0 次(数组本身即为有序)。
由此可以推出,选择排序的时间复杂度和空间复杂度分别为 O(n2 ) 和 O(1) (选择排序只需要一个额外空间用于数组元素交换)。
实现代码:
/** ?
?*?Selection?Sorting ?
?*/?
SELECTION(new?Sortable()?{ ?
????public?T?extends?ComparableT?void?sort(T[]?array,?boolean?ascend)?{ ?
????????int?len?=?array.length; ?
????????for?(int?i?=?0;?i??len;?i++)?{ ?
????????????int?selected?=?i; ?
????????????for?(int?j?=?i?+?1;?j??len;?j++)?{ ?
????????????????int?compare?=?array[j].compareTo(array[selected]); ?
????????????????if?(compare?!=?0??compare??0?==?ascend)?{ ?
????????????????????selected?=?j; ?
????????????????} ?
????????????} ?
?
????????????exchange(array,?i,?selected); ?
????????} ?
????} ?
})?
2. 插入排序
插入排序的基本思想是在遍历数组的过程中,假设在序号 i 之前的元素即 [0..
您可能关注的文档
- 12起重机械安改造重大维修(双梁).doc
- 14年公需科目碳考试题保及格(84分,内有得分记录).doc
- 22厦门市竣工收报告.doc
- 47#-地下室48#楼棠花园质量评估报告.doc
- 75吨循化流化锅炉施工方案.doc
- 80万吨余热锅焦炉烟气(废气)余热回收方案.doc
- 100万吨余热收焦炉 废气余热回收方案.doc
- 130T循环流床锅炉汽包吊装方案.doc
- 130万吨余热收焦炉废气回收方案.doc
- 150m黑石头矿2.doc
- 中国国家标准 GB/T 45897.1-2025医用气体压力调节器 第1部分:压力调节器和带有流量计的压力调节器.pdf
- 《GB/T 45897.1-2025医用气体压力调节器 第1部分:压力调节器和带有流量计的压力调节器》.pdf
- 中国国家标准 GB/T 45897.2-2025医用气体压力调节器 第2部分:汇流排压力调节器和管道压力调节器.pdf
- 《GB/T 45897.2-2025医用气体压力调节器 第2部分:汇流排压力调节器和管道压力调节器》.pdf
- GB/T 45897.2-2025医用气体压力调节器 第2部分:汇流排压力调节器和管道压力调节器.pdf
- 《GB/T 45305.2-2025声学 建筑构件隔声的实验室测量 第2部分:空气声隔声测量》.pdf
- 中国国家标准 GB/T 45305.2-2025声学 建筑构件隔声的实验室测量 第2部分:空气声隔声测量.pdf
- GB/T 45305.2-2025声学 建筑构件隔声的实验室测量 第2部分:空气声隔声测量.pdf
- 中国国家标准 GB/T 20833.2-2025旋转电机 绕组绝缘 第2部分:定子绕组绝缘在线局部放电测量.pdf
- GB/T 20833.2-2025旋转电机 绕组绝缘 第2部分:定子绕组绝缘在线局部放电测量.pdf
最近下载
- 第一季度中医适宜技术理论培训题有答案.docx
- 酸碱交替固定床过氧化氢生产工艺改造项目安全风险防控要点(2025.4.18).pdf
- 大学生熬夜ppt课件.pptx VIP
- 广州市白云区2025届数学五年级第二学期期末统考试题含答案.doc VIP
- 经济学原理(第8版)微观经济学曼昆课后习题答案解析.pdf
- DB11-1706文物建筑防火设计规范.pdf VIP
- DB45T 2251-2021 城市轨道交通消防警情与救援监控系统技术规范.pdf VIP
- Hikvision UD35104B_海康威视布控球(iDS-MCD242)_用户手册_V5.1.4_20231108说明书.pdf
- 2018年中央财经大学803经济学综合考研真题及标准答案.doc VIP
- 国有资产管理 全套课件.PPT VIP
文档评论(0)