美文网首页
Java语言——数组排序算法

Java语言——数组排序算法

作者: 开心糖果的夏天 | 来源:发表于2017-06-01 10:08 被阅读0次

数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。


Java语言

一、冒泡排序

冒泡排序是最常用的数组排序算法之一,它排序数组元素的过程总是将小数往前放、大数往后放,类似水中气泡往上升的动作,所以称为冒泡排序。

1.基本思想

冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素值,把较小的元素值移动到数组前面,把大的元素移动到数组后面(也就是交换两个元素的位置),这样较小的元素就像气泡一样从底部上升到顶部。

2.算法示例

冒泡算法由双层循环实现,其中外层循环用于控制排序轮数,一般为要排序的数组长度减1次,因为最后一次排序只剩下一个数组元素,不需要对比,同时数组已经完成排序了。而内层循环主要用于对比数组中每个临近元素的大小,以确定是否交换位置,对比和交换次数随排序轮数减少。例如,一个拥有6个元素的数组,在排序过程中每一次循环的排序过程和结果如下图所示:

6个元素数组的排序过程

二、直接选择排序

直接选择排序方法属于选择排序的一种,它的排序速度要比冒泡排序快一些,也是常用的排序算法。

1.基本思想

直接选择排序的基本思想是将指定排序位置与其他数组元素分别对比,如果满足条件就交换元素值,注意,这里区别于冒泡排序,不是交换相邻元素,而是把满足条件的元素与指定的排序位置交换(如从最后一个元素开始排序),这样排序好的位置逐渐扩大,最后整个数组都成为已排序好的格式。与冒泡排序相比,直接选择排序的交换次数要少很多,所以速度会快些。

2.算法示例

每一趟从待排序的数据元素中选出最小(或最大)的一个元素,顺序的放在已排好序的数列的最后,直到全部待排序的数据元素排完。排序过程和结果如下图所示:

直接选择排序

三、反转排序

顾名思义,反转排序就是以相反的顺序把原有数组的内容重新排序。反转排序算法在程序开发中也经常用到。

1.基本思想

反转排序的思想就是把数组的最后一个元素与第一个元素替换,倒数第二个元素与第二个元素替换,以此类推,直到把所有数组元素反转替换。

2.算法示例

反转排序就是对数组两边的元素进行替换,所以只需要循环数组长度的半数次,如数组长度为7,那么for循环只需要循环3次。排序过程和结果如下图所示:

反转排序
学习是一件很快乐的事,这种快乐来自于你的思考。完成一项学习任务固然重要,但更重要的是在完成的过程中学到了什么,掌握了什么,遇到一些什么问题,为什么会出现这种问题,根源是什么,都有哪些解决方案,什么样的情况适合这个方案。只有在不断的思考,你的能力才会有所提升!

相关文章

  • Java语言——数组排序算法

    数组有很多常用的算法,包括冒泡排序、直接选择排序和反转排序。 一、冒泡排序 冒泡排序是最常用的数组排序算法之一,它...

  • C语言中的指针与数组

    C语言中的指针与数组 @(C语言)[排序算法, 快速排序, C实现] 引言 相信指针与数组是不少同学在初学C语言时...

  • 一文搞定十大经典排序算法(Java实现)

    本文总结十大经典排序算法及变形,并提供Java实现。参考文章:十大经典排序算法总结(Java语言实现)快速排序算法...

  • 数据结构必备代码

    目录: 排序算法 树的遍历 查找 链表插入 数组与列表转化 二维数组排序 java中输入 集合遍历 一、基本排序1...

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 数据结构&算法(一)

    一、Java实现快速排序算法 二、Java实现折半插入排序算法 三、Java实现冒泡排序算法

  • 数据结构02-高效排序算法

    第二章 高效排序算法 第二章 高效排序算法一、快速排序基本思想快速排序图示一次划分C 语言实现Java 语言实现算...

  • 2019 算法面试相关(leetcode)--字符串

    1、七种常见的数组排序算法整理(C语言版本)2、2019 算法面试相关(leetcode)--数组和链表3、201...

  • 2018 iOS面试题---算法相关

    1、七种常见的数组排序算法整理(C语言版本)2、2019 算法面试相关(leetcode)--数组和链表3、201...

  • Java数组排序算法

    冒泡排序(BubbleSort) 冒泡排序的基本思想是对比相邻的元素值,如果满足条件就交换元素,把较小的元素移动到...

网友评论

      本文标题:Java语言——数组排序算法

      本文链接:https://www.haomeiwen.com/subject/qxoxfxtx.html