千家信息网

Java如何实现常用排序

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章将为大家详细讲解有关Java如何实现常用排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。1.选择排序选择排序的基本思想是遍历数组的过程中,以i代表当前需要
千家信息网最后更新 2026年11月01日Java如何实现常用排序

这篇文章将为大家详细讲解有关Java如何实现常用排序,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

  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)(选择排序只需要一个额外空间用于数组元素交换)。

  实现代码:

  /**   *SelectionSorting   */   SELECTION(newSortable(){   publicvoidsort(T[]array,booleanascend){   intlen=array.length;   for(inti=0;i

  2.插入排序

  插入排序的基本思想是在遍历数组的过程中,假设在序号i之前的元素即[0..i-1]都已经排好序,本趟需要找到i对应的元素x的正确位置k,并且在寻找这个位置k的过程中逐个将比较过的元素往后移一位,为元素x"腾位置",最后将k对应的元素值赋为x,插入排序也是根据排序的特性来命名的。

  以下是一个实例,红色标记的数字为插入的数字,被划掉的数字是未参与此次排序的元素,红色标记的数字与被划掉数字之间的元素为逐个向后移动的元素,比如第二趟参与排序的元素为[11,31,12],需要插入的元素为12,但是12当前并没有处于正确的位置,于是我们需要依次与前面的元素31、11做比较,一边比较一边移动比较过的元素,直到找到第一个比12小的元素11时停止比较,此时31对应的索引1则是12需要插入的位置。

关于"Java如何实现常用排序"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

排序 元素 数组 选择 位置 数字 过程 次数 篇文章 常用 复杂 最小 有序 复杂度 实例 序号 思想 情况 更多 标记 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国互联网科技工作委员会毛军 互联网科技行业发展 涨乐互联网科技 互联网科技的 易互联网科技有限公司 平安科技 互联网 长亮科技互联网金融 互联网科技公司的市场部门 深圳市运趣互联网科技有限公司 玖二柒互联网科技公司待遇 北京华百购互联网科技有限公司 科技与互联网哪个更好 互联网科技革命什么开始 工业互联网等科技实现智能化赋能 中国互联网有什么科技 宁波跨境商互联网科技有限公司 上海同邻互联网科技有限公司规模 互联网科技手机排行榜 玉溪新华互联网科技怎么选 伍佰万互联网科技是干嘛的 远拓互联网科技 奔汉互联网科技 亿人帮互联网科技 成都仁贤领冠互联网科技有限公司 中国的互联网科技企业的崛起 互联网科技寓意 阿里互联网科技企业 互联网领先科技宣传片 科技互联网经济论坛 数字科技和互联网金融哪个好
0