当前位置: 首页 > news >正文

JAVA之冒泡(Bubble)排序

冒泡排序基本思想:重复的访问要排序的数列,一次比较两个元素,如果前者大于后者,就将它们进行交换。即:让较大的数往下沉,较小的往上冒。

思想理解起来有点抽象,以一个简单的例子详细的了解一下冒泡的运行过程:

    public static void main(String[] args) {
        int c [] = {4,5,9,1,34,8};
        int b [] = bubbleSort(c);
        for(int k=0;k<b.length;k++)
            System.out.print(b[k]+"  ");
    }
    public static int [] bubbleSort(int a[]){
        int temp = 0;
        for(int i=1;i<a.length;i++){
            for(int j=0;j<a.length-i;j++){
                if (a[j] > a[j+1]) {
                    temp = a[j];
                    a[j] = a[j+1];
                    a[j+1] = temp;
                }
            }
        }
        return  a;
    }
运行过程解析:

第一次 4 5 9 1 34 8    
第二次 4 5 9 1 34 8    
第三次 4 5 1 9 34 8   9和1比较,进行交换
第四次 4 5 1 9 34 8    
第五次 4 5 1 9 8 34   34和8比较,进行交换
第六次 4 5 1 9 8 34    
第七次 4 1 5 9 8 34   5和1比较,进行交换
第八次 4 1 5 9 8 34    
第九次 4 1 5 8 9 34   9和8比较,进行交换
第十次 1 4 5 8 9 34   4和1比较,进行交换
第十一次 1 4 5 8 9 34    
第十二次 1 4 5 8 9 34    
第十三次 1 4 5 8 9 34    
第十四次 1 4 5 8 9 34    
第十五次 1 4 5 8 9 34    


总结:简单的总结了一下冒泡排序,对于冒泡的优化等等,知之甚少。望大神们多多指导指导。谢谢!!!


相关文章:

  • JAVA之选择排序
  • JAVA之插入排序
  • JAVA之类,构造函数和构造代码块
  • JAVA面试题之冒泡排序,插入排序及选择排序
  • Linux安装JDK步骤
  • Linux之ssh,scp命令的使用
  • Linux之ssh免密登录
  • Hadoop-2.8.0安装教程---单机/伪分布式配置
  • Java之序列化与反序列化
  • Hadoop之常用shell命令整理
  • Itext笔记之pdf页眉页脚
  • JAVA操作HDFS案例
  • zookeeper-3.4.10安装教程---分布式配置
  • storm-1.1.0安装教程---分布式配置
  • Hadoop之HDFS分布式文件系统读写流程详解
  • 5、React组件事件详解
  • Django 博客开发教程 8 - 博客文章详情页
  • Gradle 5.0 正式版发布
  • oldjun 检测网站的经验
  • Service Worker
  • uva 10370 Above Average
  • Vim Clutch | 面向脚踏板编程……
  • webpack入门学习手记(二)
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 构造函数(constructor)与原型链(prototype)关系
  • 每个JavaScript开发人员应阅读的书【1】 - JavaScript: The Good Parts
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 使用parted解决大于2T的磁盘分区
  • 通过获取异步加载JS文件进度实现一个canvas环形loading图
  • 为什么要用IPython/Jupyter?
  • 我有几个粽子,和一个故事
  • 原生Ajax
  • 选择阿里云数据库HBase版十大理由
  • ​secrets --- 生成管理密码的安全随机数​
  • #define、const、typedef的差别
  • #NOIP 2014# day.1 T3 飞扬的小鸟 bird
  • (C语言)共用体union的用法举例
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (动手学习深度学习)第13章 计算机视觉---微调
  • (分类)KNN算法- 参数调优
  • (一)Java算法:二分查找
  • (转)3D模板阴影原理
  • (转)http协议
  • (转)IIS6 ASP 0251超过响应缓冲区限制错误的解决方法
  • *1 计算机基础和操作系统基础及几大协议
  • ./configure,make,make install的作用
  • .NET Core实战项目之CMS 第十二章 开发篇-Dapper封装CURD及仓储代码生成器实现
  • .NET 自定义中间件 判断是否存在 AllowAnonymousAttribute 特性 来判断是否需要身份验证
  • @在php中起什么作用?
  • [145] 二叉树的后序遍历 js
  • [C++数据结构](22)哈希表与unordered_set,unordered_map实现
  • [HTML]HTML5实现可编辑表格
  • [HTML]Web前端开发技术30(HTML5、CSS3、JavaScript )JavaScript基础——喵喵画网页
  • [JavaScript]_[初级]_[关于forin或for...in循环语句的用法]
  • [LeetCode] Minimum Path Sum