专注Java教育14年 全国咨询/投诉热线:444-1124-454
赢咖4LOGO图
始于2009,口口相传的Java黄埔军校
首页 hot资讯 Java数组排序方法详解

Java数组排序方法详解

更新时间:2020-11-02 17:53:52 来源:赢咖4 浏览1300次

数组,其实就是一个给定了大小给定了类型的容器,在这容器中有你设定的元素,你可以对这些元素进行各种升降排列,或者找出其中特殊的元素并进行一系列的运算。数组,本身是有序的元素序列,本文我们就来看看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代码实例:

image.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代码实例:

image.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代码实例:

image.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为间隔,也就是说类似第一个和第五个比较,方法同上。

image.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代码如下

image.png


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

image.png


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

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


提交申请后,顾问老师会电话与您沟通安排学习

免费课程推荐 >>
技术文档推荐 >>