冒泡排序

 

冒泡算法:

原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,

这样一趟过去后,最大或最小的数字被交换到了最后一位,

然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子

例子:从小到大进行排序
6 | 4 | 8 |  5 | 3 | 1 |
第一次循环比较
第一次比较:3 > 1
结果:6 | 4 | 8 |  5 | 1 | 3 |
第二次比较:5 >1
结果:6 | 4 | 8 |  1  | 5  | 3 |
第三次比较:8 >1
结果:6 | 4 | 1 |  8  | 5  | 3 |
第四次比较:4 > 1
结果:6 | 1 | 4 |  8  | 5  | 3 |
第五次比较:6 > 1
结果:1 | 6 | 4 |  8  | 5  | 3 |
此时,一次循环结束。
之后以此类推共进行n-1次循环。
代码实现:
package paixu;

public class MaoPao {
    public void sort(int[] arr){
        int length = arr.length;
        for(int i = 0; i < length - 1; i++){
            for(int j = 0; j < length - 1 - i; j ++){
                if(arr[j] > arr[j+1]){
                    int temp;
                    temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }
    public static void main(String args[]){
        int arr[] = {1,3,5,8,4,6};
        MaoPao m = new MaoPao();
        m.sort(arr);
        for(int x : arr){
            System.out.println(x);
        }
    }
}
 

 

posted @ 2016-06-11 12:16  清风雨下  阅读(132)  评论(0编辑  收藏  举报