Java 数据结构与算法系列之冒泡排序

发布时间:2019-11-17 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了Java 数据结构与算法系列之冒泡排序脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

一、前言

相信大部分同学都已经学过数据结构与算法这门课了,并且我们可能都会发现一个现象就是我们所学过的数据结构与算法类的书籍基本都是使用 C 语言来写的,好像没见过使用 Java 写的数据结构与算法。

带着这个好奇心,我去查了下资料,国内基本找不到使用 Java 写的数据结构与算法书籍,有一本书叫《Java 数据结构与算法》,这本书的代码是使用 Java 实现的,不过这本书是国内的学者翻译国外的书籍写出来的,个人感觉这本书对于初学者来说,还是比较难理解的。

冒泡排序一种运行效率很低的排序算法,然而虽然排序效率低,确实排序入门很重的算法,因为冒泡排序的思路是最简单最容易理解的排序算法了。

二、冒泡排序

1、定义: 冒泡排序是一种通过两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止的交换排序。

2、实现思想: 通过比较两两相邻记录的关键字,将第一个记录的关键字和第二个记录的关键字进行比较,如果后面的比前面的小则交换,然后比较第二个和第三个,依次类推。比完一个循环,最大的那个已经放到了最后的位置,这样就可以对前面N-1个数再循环比较。

下面以一群身高不等的学生为例,如下图所示:

  • 未排序的学生

Java 数据结构与算法系列之冒泡排序

  • 已排序的学生

Java 数据结构与算法系列之冒泡排序

  • 冒泡排序第一轮实现过程

Java 数据结构与算法系列之冒泡排序

三、冒泡排序的 Java 代码实现

1、冒泡排序实现算法:

BubbleSort.java

package BubbleSort;  /**  *  * 冒泡排序实现算法  *  */ public class BubbleSort {      public void bubble(Integer[] data){          for(int i=0;i<data.length;i++){             for(int j=0;j<data.length-1-i;j++){                  //如果后一个数小于前一个数,则两个数互相交换位置                 if(data[j]>data[j+1]){                     int tmp=data[j];                     data[j]=data[j+1];                     data[j+1]=tmp;                 }             }         }     } } 

2、冒泡排序测试:

test.java

package BubbleSort;  import java.util.Arrays;  /**  *  * 测试冒泡排序  *  */ public class Test {      public static void main(String[] args) {          Integer[] list={149,138,165,197,176,113,127,114,110};          //冒泡排序         BubbleSort bs = new BubbleSort();         bs.bubble(list);          System.out.println("排序前的结果为:" + Arrays.toString(list));         System.out.print("排序后的结果为:");          for(int i=0;i<list.length;i++){             System.out.print(list[i]+" ");         }     } } 

2、测试结果:

Java 数据结构与算法系列之冒泡排序


关注微信公众号compassblog了解更多

脚本宝典总结

以上是脚本宝典为你收集整理的Java 数据结构与算法系列之冒泡排序全部内容,希望文章能够帮你解决Java 数据结构与算法系列之冒泡排序所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。