专题:冒泡排序

作者: Xplorist | 来源:发表于2017-03-14 13:50 被阅读5次

    正宗的冒泡思路:(从大到小排列:将小数往下冒)

    第一个数和第二个数比较,然后将小的一个数往后面挪,知道挪到最后一位,就得到了第一个最小的数了。将小数往下冒。
    关键的是想清楚两次循环的次数,还有中间重复的次数。

     /**
     * 将数组从大到小排序:
     * 5 7 2 9 1 8 3 2 0 6 4 
     * 第1次:a[0]<a[1]交换
     * 7 5 2 9 1 8 3 2 0 6 4 
     * 第2次:a[1]<a[2]不交换
     * 7 5 2 9 1 8 3 2 0 6 4 
     * 第3次:a[2]<a[3]交换
     * 7 5 9 2 1 8 3 2 0 6 4 
     * 第4次:a[3]<a[4]不交换
     * 7 5 9 2 1 8 3 2 0 6 4 
     * 第5次:a[4]<a[5]交换
     * 7 5 9 2 8 1 3 2 0 6 4 
     * 第6次:a[5]<a[6]交换
     * 7 5 9 2 8 3 1 2 0 6 4 
     * 第7次:a[6]<a[7]交换
     * 7 5 9 2 8 3 2 1 0 6 4 
     * 第8次:a[7]<a[8]不交换
     * 7 5 9 2 8 3 2 1 0 6 4 
     * 第9次:a[8]<a[9]交换
     * 7 5 9 2 8 3 2 1 6 0 4 
     * 第10次:a[9]<a[10]交换
     * 7 5 9 2 8 3 2 1 6 4 0 
    
     * */
    
        public void test7() {
            int[] a = { 5, 7, 2, 9, 1, 8, 3, 2, 0, 6, 4 };
            for (int n = 0; n < a.length - 1; n++) {
                for (int i = 0; i < a.length - 1 - n; i++) {
                    if (a[i] < a[i - 1]) {
                        a[i] = a[i] + a[i - 1];
                        a[i - 1] = a[i] - a[i - 1];
                        a[i] = a[i] - a[i - 1];
                    }
                }
            }
        }
    

    我的冒泡思路:(从大到小排列:将大数往上冒)

    第一个数依次和后面的每个数比较,然后将大的数放在第一个数的位置。直接将大数冒上来。

    我自己的冒泡思路核心代码:

    /**
     * 将给定数组(4,2,20,7,1,9,3)从大到小排序
     * */
    
        public void test5(){
            int[] a={4,2,20,7,1,9,3};
            
            System.out.println("排列前的数组:");
            for(int i=0;i<a.length;i++){
                System.out.print(a[i]+" ");
            }
            System.out.println();
            
            for(int i=0;i<a.length;i++){
                for(int j=i+1;j<a.length;j++){
                    if(a[i]<a[j]){
                        a[i]=a[i]+a[j];
                        a[j]=a[i]-a[j];
                        a[i]=a[i]-a[j];
                    }
                }
            }
    
    

    相关文章

      网友评论

        本文标题:专题:冒泡排序

        本文链接:https://www.haomeiwen.com/subject/tithnttx.html