专题:冒泡排序

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

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

 /**
 * 将数组从大到小排序:
 * 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];
                }
            }
        }

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 第一章数和数的运算 一概念 (一)整数 1整数的意义 自然数和0都是整数。 2自然数 我们在数物体的时候,用来表示...
    meychang阅读 2,656评论 0 5
  • 冒泡排序法是对于数组运用的一个基础体现。中心思想:依次比较相邻的两个数,将小数放在前面,大数放在后面。即首先比较第...
    Lucky宁阅读 430评论 0 0
  • 简化版的 桶排序 不仅仅有上一节所遗留的问题,更要命的是:它非常浪费空间!例如需要排序数的范围是 0~210000...
    青葱烈马阅读 337评论 0 0
  • 冒泡排序 * 原理:比较两个相邻的元素,将值大的元素交换至右端。 * 思路:依次比较相邻的两个数,将小数放在前面(...
    98e46a4d60b6阅读 320评论 0 0
  • 曾经说永远会在一起 曾经说过谁也不相离 如今连问候都显陌生 也许终究成了陌生人 ...
    铜钱静默阅读 239评论 0 2