java数组排序的方法_Java数组排序方法详解

java数组排序的方法_Java数组排序方法详解数组 其实就是一个给定了大小给定了类型的容器 在这容器中有你设定的元素 你可以对这些元素进行各种升降排列 或者找出其中特殊的元素并进行一系列的运算 数组 本身是有序的元素序列 本文我们就来看看 Java 数组排序的几个方法 一 冒泡排序举个栗子 一个容量为七的数组排升序 降序同理 最大值变最小就 ok 从这组数中找那个冒泡的 最大的 把它踢到最后

数组,其实就是一个给定了大小给定了类型的容器,在这容器中有你设定的元素,你可以对这些元素进行各种升降排列,或者找出其中特殊的元素并进行一系列的运算。数组,本身是有序的元素序列,本文我们就来看看Java数组排序的几个方法。

一、冒泡排序

举 个 栗 子:5 2 0 4 1 3 一个容量为七的数组排升序(降序同理,最大值变最小就ok)

①从这组数中找那个冒泡的(最大的),把它踢到最后 2 0 4 1 3 5

②重复上述行为 2 0 1 3 4 5

③重复~~ 2 0 1 3 4 5

④~~0 1 2 3 4 5

⑤~~0 1 2 3 4 5 完成

Java代码实例:

dfd7e45036708fb67d699eaa3491c74a.png

二、选择排序

还是刚才那个栗子:5 2 0 4 1 3 升序

①找到数组中最小的 放到第一个位置 0 5 2 4 1 3

②数组中剩下的找到最小的放在第二个位置 0 1 5 2 4 3

③ ~~ 0 1 2 5 4 3

④~~ 0 1 2 3 5 4

⑤~~0 1 2 3 4 5 完成

Java代码实例:

74c997fe675a1eea48e9855848859193.png

三、插入排序

个人认为就是在摸扑克牌 桌上的牌堆就是你的数组 一张一张的摸到手上,你的数组排序也就完成了。 这次你的牌堆为 5 2 0 4 1 3

,依次向手中加牌

①摸一张5 5

②摸一张2 放5左边 2 5

③~~ 0 2 5

④~~ 0 2 4 5

⑤~~ 0 1 2 4 5

⑥~~ 0 1 2 3 4 5

Java代码实例:

e9cc7cc493959fc145dbc3812d19fce2.png

四、希尔排序

希尔排序其实就是一种间隔交换,这次用个长点的栗子来让大家了解我的意图 一个拥有十个元素的数组

43 95 38 30 41 72 60 74 24 32

①首先

我以5为间隔。第一个和第六个比较,第二个和第七个比较,第三个和第八个比较……升序不变,降序则置换位置。(比如第一个43和第六个72升序不变换位置,第二个95和第七个60降序置换位置)

得到置换结果 43 60 38 24 32 72 95 74 30 41

②接着我们采用3为间隔,也就是说类似第一个和第五个比较,方法同上。

4164b8c47e07ee97ae96f90530bd6c92.png

得到置换结果 24 32 30 41 60 38 43 74 72 95

③接着我们采用2为间隔,得到置换结果 :

24 32 30 38 43 41 60 74 72 95

④最后以1为间隔 结果很简单 24 30 32 38 41 43 60 72 74 95

大家不难发现我取间隔的方式如同下方代码一般,重复 int

k/2,间隔选取其实并非唯一确定的,针对不同的数组,你们可以根据自己的经验来采用不同方式的间隔,在这里就不啰嗦了。

Java代码如下

a4fe38fc41fc46d83e615202da3793e6.png

现在方案写完了 随机一个拥有十个元素的数组然后打印出排序如下 :

28e39154784fcd82d1fd27ae391b41dc.png

希尔排序虽然针对大多数数组排序有较高的效率但是其稳定性却令人堪忧,建议大家写文件时用插入排序,既有效率又算法稳定。

以上就是为大家介绍的4种Java数组排序方法,在我们处理数组中的数据时能够为我们快速地对数组数据进行排序。当然,在Java中还有其他的排序算法,感兴趣的小伙伴可以观看本站的Java基础教程,学习其他的Java数组排序算法。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/200926.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月20日 上午10:18
下一篇 2026年3月20日 上午10:19


相关推荐

  • linux(1)Mac上传文件到Linux服务器

    linux(1)Mac上传文件到Linux服务器前言我们使用mac时,想让本地文件上传至服务器,该怎么办呢windows系统,我们可以使用xftp或者rz命令,那么mac呢?mac系统,我们可以使用sftp、scp或者rz命令,本文介绍sft

    2022年7月31日
    9
  • C语言三目运算符_c语言两个逗号表达式

    C语言三目运算符_c语言两个逗号表达式1、三目运算符三目运算符也叫条件运算符、三元运算符,是由一个问号和一个冒号组成。语法:表达式1?表达式2:表达式3;语义:先执行表达式1,如果表达式1的结果如果为真,那么执行表达式2,并且这个整体的运算式的结果是表达式2的结果;如果表达式1的结果如果为假,执行表达式3,运算式的结果是表达式3的结果。inta,b,c;a=7;b=6;c=(a>b)?a…

    2022年10月4日
    3
  • 12个最好的JavaScript动画框架

    12个最好的JavaScript动画框架1.Scripty2scripty2是一个用于基于HTML的高级用户界面的开源JavaScript框架。或者简单地说,scripty2帮助你构建一个更美味的网络:视觉效果,UI组件和CSS实用程序。scripty2是script.aculo.us的完全重写和重新实现,具有模块化结构,旨在简化高度自定义的用户界面效果和行为的开发。2.JSAnimjsAnim

    2022年10月9日
    5
  • 超详细设置Idea类注释模板和方法注释模板

    超详细设置Idea类注释模板和方法注释模板网上找了一下 没有很详细且正确介绍 Idea 配置注释模板的 于是结合多篇文章自己琢磨整理出如下 设置类注释模板 1 选择 File Settings Editor FileandCodeT Includes FileHeader 2 在右边空白处 编写自己的模板即可 注意 Scheme 是模板的生效范围 可选变量在 description 有介绍 附图中本人使用的模板 U

    2026年3月18日
    2
  • 批处理 %~0_批处理输入

    批处理 %~0_批处理输入%~dp0“d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录cd是转到这个目录,不过我觉得cd/d%~dp0还好些%~dp0“d”为Drive的缩写,即为驱动器,磁盘、“p”为Path缩写,即为路径,目录cd是转到这个目录,不过我觉得cd/d%~dp0还好些选项语法:~0-删除任何引号(“),扩充%

    2026年1月29日
    12
  • Fetch failed: unable to access http://dev.123.cn:123/git/123/213.git/

    Fetch failed: unable to access http://dev.123.cn:123/git/123/213.git/

    2020年11月9日
    212

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号