冒泡算法(bubble sort)
原理:按照数组角标从小到大,将数组元素按逻辑从小到大,相近的两两排序。重复足够多的轮次(轮次不操过数组长度),直至数组元素之间不在变动位置。这样,每一轮基本都会整出一个逻辑最大的数排在数组后面,其位也就不会在动。

如:
int arr[] = { 2, 3, 5, 6, 7, 2, 8, 6, 4, 5 };
第一轮:[2, 3, 5, 6, 2, 7, 6, 4, 5, 8]
第二轮:[2, 3, 5, 2, 6, 6, 4, 5, 7, 8]
第三轮:[2, 3, 2, 5, 6, 4, 5, 6, 7, 8]
第四轮:[2, 2, 3, 5, 4, 5, 6, 6, 7, 8]
第五轮:[2, 2, 3, 4, 5, 5, 6, 6, 7, 8]
第六轮:[2, 2, 3, 4, 5, 5, 6, 6, 7, 8]
第七轮:[2, 2, 3, 4, 5, 5, 6, 6, 7, 8]
第七轮后元素没有可以移动的元素了

其它类型的数组需要重新定义下方法。都差不多就不赘述了

实现方法
1.可以直接通过 java.util包下的Arrays类里的工具直接调用

import java.util.Arrays;
public class bubbleSortTest {//冒泡排序算法 java实现public static void bublleSort(int a[]) {//长度为0不执行if(a.length==0) {return;}for (int i = 0; i <= a.length - 2; i++) {boolean flag = true;//让算法在本就可以很快就排好的数组排序更快for (int j = 0; j < a.length - 1 - i; j++) {int temp = a[j];if (a[j] > a[j + 1]) {a[j] = a[j + 1];a[j + 1] = temp;flag=false;}}if (flag)break;}}//代码验证public static void main(String[] args) {int arr[] = { 2, 3, 5, 6, 7, 2, 8, 6, 4, 5 };bublleSort(arr);//结果为:[2, 2, 3, 4, 5, 5, 6, 6, 7, 8]System.out.print(Arrays.toString(arr));//toString()会以字符串的形式直接输出arr[]}
}

noob学算法----冒泡(bubble)排序算法 Java相关推荐

  1. C语言实现冒泡排序(bubble排序)算法(附完整源码)

    冒泡排序bubble排序算法 冒泡排序(bubble排序)算法的完整源码(定义,实现,main函数测试) 冒泡排序(bubble排序)算法的完整源码(定义,实现,main函数测试) #include ...

  2. c++ sort 从大到小排序_C语言必学的12个排序算法:堆排序(第7篇)

    题外话堆排序比之前的简单选择.冒泡算法.快速排序算法复杂一些,因为用到了树形数据结构,但是本文使用了数组实现完全二叉树,因此也比较简单.C语言初学者,可以简单了解其思想,具体的知识掌握可以参照数据结构 ...

  3. C语言必学的12个排序算法:基数排序

    # 基本思想 基数排序(radix sort),同样时一种非比较的内部排序算法,主要基于多关键字排序的思想进行排序,它将单个关键字按照基数分成"多个关键字"进行排序.例如整数789 ...

  4. c++ 快速排序_C语言必学的12个排序算法:归并排序(第8篇)

    题外话很多童鞋感受算法比较难度,的确,算法其实和C语言本身关系不大,算法是计算机科学家利用丰富的数学和算法设计知识研究出来,如今我们只需拿来主义,学习使用即可,当然这需要一定的努力过程. [C语言必学 ...

  5. 算法基础:排序算法之冒泡排序

    算法基础:排序算法之冒泡排序 实现:数列有序排序 思想:已知一个数列,令数列中相邻的两个元素一一做比较,按照小大的顺序(或从大到小的顺序),如果前一个数比后一个数大(或后一个数比前一个数大),则互换( ...

  6. 数据结构之排序算法:内部排序算法的应用与比较

    排序算法:内部排序算法的应用与比较 思维导图: 比较: 应用: 思维导图: 比较: 应用:

  7. 冒泡排序算法和选择排序算法比较

      冒泡排序算法详细内容见→冒泡排序算法.   选择排序算法详细内容见→选择排序算法.   冒泡排序算法和选择排序算法的区别: 冒泡排序是比较相邻位置的两个数:而选择排序是按顺序比较,找出最大值或者最 ...

  8. java排序算法总结_排序算法总结及Java实现

    1. 整体介绍 分类 排序大的分类可以分为两种,内排序和外排序.在排序过程中,全部记录存放在内存,则称为内排序,如果排序过程中需要使用外存,则称为外排序.主要需要理解的都是内排序算法: 内排序可以分为 ...

  9. java 快速排序算法简单_排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序......

    先推荐一篇关于排序算法的文章:http://www.cppblog.com/guogangj/archive/2009/11/13/100876.html 本文思路部分来源于上篇文章,但测得的结果似乎 ...

  10. java常见的排序算法_常见排序算法及Java实现

    先上个总图↓: ①.直接插入排序 插入排序(Insertion Sort)的算法描述是一种简单直观的排序算法.它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并 ...

最新文章

  1. Bootstrap4 导航栏元素居右
  2. macbook所有型号大全_提高MacBook电池寿命的15个技巧
  3. 网络游戏中用到哪些计算机技术,美术设计中计算机技术的应用论文
  4. php获取跳转前的地址,PHP获取短链接跳转后的真实地址和响应头信息的方法
  5. IDEA2019版最新配置SVN及上传教程-超详细图文详解
  6. VRRP和HSRP在企业网中的应用
  7. php if多条件_PHP的数据类型
  8. Leecode刷题热题HOT100(4)——寻找两个正序数组的中位数
  9. CentOS 6.5使用本地光盘做yum源
  10. 为用户增加sudo权限(修改sudoers文件)
  11. 深信服SCSA安全认证工程师
  12. 黑盒测试的测试方法及其案例
  13. VS2017安装MFC
  14. 【ASO优化】手游9大ASO优化方法帮你获得巨量新增!
  15. Retrofit详解
  16. 微服务中什么是熔断?什么是服务降级?
  17. Vscode Remote SSH 远程连接失败过程报错:试图写入的管道不存在
  18. 小偷和抢劫是被怎么遏制的?
  19. BAP:PPP 带宽分配协议 BACP:PPP 带宽分配控制协议--网络大典
  20. 第1章 linux的历史演绎

热门文章

  1. ACL 2017 录用论文整理(长文)
  2. 高精度ua级恒流源_高精度恒流源电路图大全(十款高精度恒流源电路设计原理图详解)...
  3. 启动计算机键盘没反应,电脑键盘个别键没反应怎么办
  4. 常见的几种IDEA使用技巧
  5. 工业互联网发展行动计划(2018-2020年)
  6. elasticsearch实践之代码结构设计
  7. 农历与公历日期转换(1900年 至 2049年)
  8. Unity Spine动画如何选定帧数(时间)播放
  9. 20194307肖江宇Exp-4 恶意代码分析
  10. Python Turtle绘图[难度2星]:横切的橙子(配色优化——邻近色/反差色)