java数组中的冒泡法

来源:互联网 发布:什么是网络通信 编辑:程序博客网 时间:2024/04/27 17:33

  在数组中,经常会用数组中数据的排序问题。对于排序问题的算法比较多,这里分享下比较经典的算法--冒泡法!

冒泡法的名字来源:我们在日常生活中,烧开水的时候回发现,气泡越往上,它的体积越大。我们把这种2个数比较一次,然后将大的数字交换到前面,小的在后面的算法叫做冒泡法。


例;       有数组   int a[ ] ={3,65,41,23,77,99}  要求将数组中的数字从大到小排列。

分析;  用数组中相邻数字 “3”根后面的数字“65.41.23.77.99”进行比较。角标0上的“3”与角标1上的“65”比较。3<65是真,那么就把3和65进行位置交换。然后是角标1上的值“3”跟角标2上的值“41”进行比较。这样我们就发现,大的数字在上前移动,小的数值在向后移动。

           

具体代码如下:

public class maopao {
public static void main(String[] args) {
int a[]={3,65,41,23,77,99};              
for (int  i= 0; i < a.length-1; i++) {                         //-1 是因为当i=5是,没有相邻的元素比较。
for (int j = 0; j < a.length-1-i; j++) {       //减i是为了让每次比较的元素减少,减1,是为了让数组不越界。
if ( a[j] < a[j+1]) {                     //如果前一个数比后一个数小,交换位子。

int b=0;                           //定义一个b 是为了方便进行交换。
b=a[j+1];
a[j+1]=a[j];
a[j]=b;
    }
  }
}
for (int k = 0; k < a.length; k++) {
System.out.println(a[k]);
    }
  }
}


0 0