java算法之冒泡

 大家一看到这个名字可能就已经猜到了它的工作方式了,这种排序方法是从最低部的元素开始进行比较,较小的元素将会像气泡一样往上冒,这样听起来很抽象,举个例子吧!

比如我们要对一个包含了3个元素的数组按照升序进行排序,我们首先将会把第三个元素的值与第二个元素的值进行比较,如果第三个元素的值小于第二个数的值,则交换这两个元素的值,接下来,我们将第二个元素的值,再与第一个元素的值进行比较,同上面一样,如果发现下面的元素的值小于上面元素的值,则交换这两个值。

这种排序方式虽然能满足我们的要求对数据进行排序,但是效率比较慢,不过处理这种几个数排序的是不会有什么问题的,呵呵。

 

算法定义   http://baike.baidu.com/view/88806.htm

 

 

package test2;

public class Bubble {

//  冒泡排序函数1
 public static void bubbleSort1(Comparable []data){
   
   int position,scan;
   Comparable temp;
   for(position = data.length-1;position>=0;position--){
       for(scan=0;scan<=position-1;scan++){
     if(data[scan].compareTo(data[scan+1])<0){
         temp = data[scan];
         data[scan] = data[scan+1];
         data[scan+1]=temp;
     }
       }
   }
     }
//  冒泡排序函数2
   public static int[] bubbleSort2(int[] m){
    
     int intLenth = m.length;
     /*执行intLenth次*/
     for (int i=0;i<intLenth;i++){
         /*每执行一次,将最小的数排在后面*/
         for (int j=0; j<intLenth-i-1;j++)
         {
             int a = m[j];
             int b = m[j + 1];
             if (a < b)
             {
                 m[j] = b;
                 m[j + 1] = a;
             }
         }
     }
     return m;
   }
   
    public static void main(String []args){
  
     // 冒泡排序1
     Comparable []c={4,9,23,1,45,27,5,2};
     bubbleSort1(c);
     for(int i=0;i<c.length;i++)
         System.out.println("冒泡排序1:"+c[i]);
     
      System.out.println("*******************");
      
     //  冒泡排序2
     int []b = {4,9,23,1,45,27,5,2};
     int []e = bubbleSort2(b);
     for(int j=0;j<e.length;j++)
         System.out.println("冒泡排序2:"+e[j]);   
     }
 }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值