用JAVA实现排序算法之一:冒泡排序

来源:互联网 发布:淘宝耳钉知乎 编辑:程序博客网 时间:2024/05/16 10:47

    最近一段时间在努力学习回顾JAVA方面的相关知识,这其中涉及到了几种常用的排序算法。笔者虽知用JAVA实现简单的排序算法早已不是什么新鲜事,类似的实现更是多如牛毛,而笔者在这里之所以老调重弹,最基本的出发点无非就是巩固已学知识,夯实基础罢了。所以,在这里,笔者将不厌其烦地使用JAVA实现几种常用的排序算法,包括冒泡排序、插入排序、选择排序、快速排序和希尔排序等。本篇文章介绍的是冒泡排序算法。

    冒泡排序算法的基本思想是:首先将第n-1个记录的关键字和第n个记录的关键字进行比较,若为“逆序”(即L.r[n].key<L.r[n-1].key),则将两个记录交换之,然后比较第n-2个记录和第n-1个记录的关键字。依次类推,直至第1个记录的关键字和第2个记录的关键字比较过为止。这是第一趟起泡排序,其结果是使得关键字最小的记录被安置到第一个记录的位置上;然后进行第二趟起泡排序,对后面的n-1个记录进行同样的操作,其结果是使关键字次小的记录被安置到第2个记录的位置;一般地,第i趟起泡排序是从L.r[n] 到L.r[i]依次比较相邻两个记录的关键字,并在“逆序”时交换相邻记录,其结果是这n-i+1个记录中关键字最小的记录被交换到第i的位置上。整个排序过程需要进行K(1≤k<n)趟起泡排序,显然,判别起泡排序结束的条件应该是“在一趟排序过程中没有进行过交换记录的操作”。

    以下是冒泡排序的JAVA代码实现:

 

原创粉丝点击