Java实现冒泡基本算法

冒泡算法的基本是交换算法的一种。交换算法即当两个次序相反时马上进行交换,直到没有反序的为止。另一种常用的交换算法为快速排序。

冒泡算法的基本思路是对一个包含不同重量气泡的数组今夕排序。从下往上扫描气泡数组,根据轻气泡在上,重气泡在上的原则。第一次从下往上扫描,将最下面的和次上面的比较,将其中轻的放上面,然后在用两个中轻的和上一个比较,互换。以此类推,一遍扫描下来之后,最上面的气泡是最轻的。

将最轻的放入有序区,在对无序区按照之前的方法从下往上扫描,最顶部的即为次轻的。以此类推,有序区中就有了n-1个气泡,无序区中即为最重的。

在冒泡排序过程中,如果气泡位置没有变,就说明无序区中的所有气泡都是符合要求的,则排序即可终止。

使用Java算法进行排序的代码如下:

   /**基本冒泡排序算法*/

   public Integer[] sort(Integer[] ready){

     //是否发生交换

     boolean isexchange = false;

     //最多会进行n-1次

     for (int i = 1; i < ready.length-1; i++) {

        //本次扫描初始化

        isexchange = false;

        for(int j=ready.length-1;j>=i;j–){

          if(ready[j] < ready[j-1]){

             //交换记录

             int tmp = ready[j-1];

             ready[j-1] = ready[j];

             ready[j] = tmp;

             isexchange = true;

          }

        }

        //没发生交换,结束

        if(!isexchange) return ready;

     }

     return ready;

   }



发表评论

电子邮件地址不会被公开。 必填项已用 * 标注

*

您可以使用这些 HTML 标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

(Spamcheck Enabled)