冒泡排序

一.为何叫冒泡排序

因为在冒泡排序的过程中,要求降序的话,最小的元素会经过与相邻的交换慢慢“浮”到最后面,其过程很像鱼在吐泡泡。

二.冒泡排序的思想

有点像古代的比武招亲,依次从头到尾把每一个对手都干掉,站在最后面的人就能迎娶公主了。

来模拟一下: 初始人的武力值: 9 , 5 , 6 , 4 ,5, 4

首先 9 与 5 pk,可以把5号拿下 ,所以交换 :5 , 9 , 6, 4, 5, 4

最终,9 会来到最后面: 5, 6 , 4 , 5,4, 9

这样子,最后一个位置名花有主了,接下来就要安排从剩下的人才中选个最猛的给倒数第二的,以此类推。

三.冒泡具体代码实现

package DoExercise;public class Bubblesort {/*** 打印数组* @param arr*/public static void  printArr(int[] arr) {for(int i = 0; i < arr.length; i++) {System.out.print(arr[i]+" ");}System.out.println();}/*** 交换两个数* @param arr * @param i* @param j*/private static void swap(int[] arr, int i, int j) {int temp = arr[i] ;arr[i] = arr[j];arr[j] = temp;}/*** 冒泡排序* @param arr*/private static void bubbleSort(int[] arr) {if(arr  == null || arr.length < 2) {//没人或者只有一个单身狗参加什么比武招亲return;}//思路:依次从头到尾把每一个对手都干掉的人,站在最后面的人就能迎娶公主了。//1.遍历数组for(int i = arr.length - 1; i >= 0; i--) {//i表示需要找汉子的公主,从数组最后一个位置开始,从后往前安排for(int j = 0; j < i; j++) {// 由于i之后都已经名花有主了,只能从开始的0到 i -1 中的人才中选if(arr[j] > arr[j + 1]) {//如果 打不过,那就下一位吧。swap(arr,j,j + 1); //直接晋级}}}}public static void main(String[] args) {int[]  arr = {5,4,3,2,1};//1.定义测试数据printArr(arr);  //2.打印测试数据bubbleSort(arr);//3.进行冒泡排序printArr(arr);  //4..打印排序后数据数据}}

结果:

bubble、冒泡排序相关推荐

  1. 冒泡排序由浅入深详细分析图解

    原理分析 排序结果: 详细代码实现: package july.star.bubble;/*** 冒泡排序* 相邻元素两两比较,大的往后放,第一次完毕后,最大值就出现在* 最大索引处,同理,继续,即可 ...

  2. java冒泡排序(java冒泡排序经典代码)

    java中最简单的方法冒泡排序? package bubble_sort; import java.util.Scanner; public class Sort { * 冒泡排序 * @param ...

  3. 数据结构算法集---C++语言实现

    /// // // // 堆栈数据结构 stack.h // // // /// #include<iostream.h> template<class Type>class ...

  4. 数组占位符_Java基础 方法和数组

    1 什么是方法 秃然编程 JavaSE 解读System.out.println(),辅助理解什么是方法: System是一个类,out是里面的一个输出对象,而println()就是一个方法. 方法概 ...

  5. Huffman(哈夫曼)编码的C语言实现

    Huffman(哈夫曼)编码的C语言实现 本文将给出C语言的Huffman编码的原理,示例及C语言仿真结果,代码. 一.Huffman编码原理及举例 Huffman编码是一种信源编码,其编码目的在于以 ...

  6. 排序 时间倒序_经典排序算法之冒泡排序(Bubble Sort)

    冒泡排序 ( Bubble Sort ) 冒泡排序,正如它的名字一样,未排序数组中的最大(小)值会依次往上浮.冒泡排序主要有两个基本步骤:相邻元素之间的比较 和 交换位置. 步骤分析: 令待排序序列为 ...

  7. Recursive Bubble Sort(递归冒泡排序)

    程序来源:Recursive Bubble Sort 迭代冒泡排序算法: // Iterative Bubble Sort bubbleSort(arr[], n) {for (i = 0; i &l ...

  8. 冒泡排序的PHP实现 Bubble Sort

    冒泡排序Bubble Sort的PHP实现.代码中函数说明: out_arr,用于将数组输出成一个字符串,以便查看 bubblesort,第一种实现方案,从后往前依次选出需要的值,这里是较大的 bub ...

  9. python冒泡排序_5种python方法实现冒泡排序可视化:Bubble Sort Visualizer

    1 说明: ===== 1.1 冒泡排序: 1.1.1 原理:比较两个相邻的元素,将值大的元素交换至右端. 1.1.2 来源:由来是因为越大的元素会经由交换慢慢"浮"到数列的顶端, ...

  10. 经典排序算法 - 冒泡排序Bubble sort

    经典排序算法 - 冒泡排序Bubble sort 其原理是比较接近的数字22,按照从小到交换大或降序排列, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头開始进行两两比較交换,直到倒 ...

最新文章

  1. 图像处理(十三)保刚性图像变形算法-Siggraph 2004
  2. Minimum Inversion Number HDU - 1394(权值线段树/树状数组)
  3. 34.Silverlight中不得不了解使用的依赖属性
  4. Java线程--扩展
  5. exchange2003客户端无法收发邮件的一次处理过程
  6. gpio stm8 管脚 配置工具_STM8S 外设模块的GPIO引脚应该如何配置
  7. php开发手册pdf版,TP5.0手册下载
  8. 联想官方 intel 8系列安装xp系统注意事项及驱动下载(H81,b85,q87)
  9. 常见路由器初始密码合集
  10. Opengl 渲染YUYV(YUV422)图像
  11. 固态硬盘测试软件有哪些,常用的固态硬盘测试软件有哪几种
  12. 2021牛客多校第六场补题
  13. 读 Derek Sivers: Anything You Want
  14. 条件运算符与条件if的姻缘,打擂台算法和大小写字母转换,if逻辑避坑
  15. 令人匪夷所思的 Magic 之魔数,你真的不会
  16. sssssssssssssssssssssssssss
  17. B站推出33333元定制电脑 配置为RTX3090和R9 5950X
  18. 第二模块:试用期问题深度剖析
  19. 白鹭时代与html5关系,白鹭时代观点:HTML5行业将进入红利收割期
  20. 小爱同学+ESP8266+blinker点灯

热门文章

  1. Hadoop Spark太重,esProc SPL很轻
  2. Python帮你完成美术作业——图片转灰度,字符画,素描手绘风格
  3. 软件测试-10月社招-测试开发-自动化测试
  4. C# 超市收银系统——面向对象学习的总结
  5. 银河麒麟操作系统用户头像和麒麟传书软件头像同步问题
  6. Pycharm 设置每行最大字符数,免得粘贴时总是自动换行
  7. 程序员进阶知识点!蚂蚁金服、拼多多、字节跳动社招面经,建议细读
  8. jquery css 流程进度条
  9. Day3 Java基础语法
  10. Docker下部署ftp服务