原理分析
排序结果:


详细代码实现:
package july.star.bubble;/*** 冒泡排序*  相邻元素两两比较,大的往后放,第一次完毕后,最大值就出现在* 最大索引处,同理,继续,即可得到一个排序好的数组** 规律:*  1、两两比较,大的往后放。*  2、第一次比较完毕后,下一次比较的时候就会减少一个元素的比较*  3、第一次比较,有0个元素不比*        第二次比较,有1个元素不比    *        第三次比较,有2个元素不比    *        第四次比较,有3个元素不比    *    .....*  4、总共需要比较数组的长度-1次* @author MoXingJian* @email 939697374@qq.com* @date 2016年12月24日 下午3:44:30* @version 1.0*/
public class BubbleSort {public static void main(String[] args) {int[] arr = {21,69,90,55,12};//输出数组printArr(arr);//详细排序过程detailSort(arr);int[] arr2 = {23,59,34,88,2,99,68};//最终版endSort(arr2);}private static void endSort(int[] arr2) {System.out.println();System.out.println("原序列");printArr(arr2);//两次for循环解决for(int i = 0; i < arr2.length-1; i++){for(int j=0; j < arr2.length-1-i;j++){if(arr2[j] > arr2[j+1]){int temp = arr2[j];arr2[j] = arr2[j+1];arr2[j+1] = temp;}}}System.out.println();System.out.println("两层循环排序");printArr(arr2);}private static void detailSort(int[] arr) {System.out.println();System.out.println("第一次排序:");//第一次排序//arr.length-1 为了防止数据越界//arr.length-1-0:为了减少比较的次数for(int i=0; i < arr.length-1-0; i++){if(arr[i] > arr[i+1]){int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}printArr(arr);System.out.println();System.out.println("第二次排序:");//第二次排序for(int i=0; i < arr.length-1-1; i++){if(arr[i] > arr[i+1]){int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}printArr(arr);System.out.println();System.out.println("第三次排序:");//第三次排序for(int i=0; i < arr.length-1-2; i++){if(arr[i] > arr[i+1]){int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}printArr(arr);System.out.println();System.out.println("第四次排序:");//第四次排序for(int i=0; i < arr.length-1-3; i++){if(arr[i] > arr[i+1]){int temp = arr[i];arr[i] = arr[i+1];arr[i+1] = temp;}}printArr(arr);}//输出数组private static void printArr(int[] arr) {System.out.print("[");for(int j = 0; j < arr.length; j++){if(j != arr.length-1){System.out.print(arr[j] + ",");}else{System.out.print(arr[j]);}}System.out.print("]");}
}

冒泡排序由浅入深详细分析图解相关推荐

  1. 如何看懂k线图:K线详细分析图解

    K线图(Candlestick chart)源处于日本德川幕府时代,它是被当时日本的米市商人用来记录米市的行情与价格波动,因为其独到的标画方式而被引入到股市及期货市场.所有的投资者都可以根据K线的实体 ...

  2. redis原理详细分析图解(最全的都在这里)

    服务化有什么好处? 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图所示: 服务A:欧洲团队维护,技术背景是Java 服务B:美洲团队维护,用C++实现 ...

  3. HashMap 源码详细分析(JDK1.8)

    1. 概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap.HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现.HashMap 允许 null 键和 null 值 ...

  4. 排序算法 快速排序【详细步骤图解】

    排序算法 快速排序[详细步骤图解] 快速排序 主要思想 图解 第一轮分割序列 第二轮分割序列 --- 左子序列 小结 第三轮分割序列 --- 右子序列 C++实现 总结 快速排序 给定一个序列:22 ...

  5. Android版xx助手之天天酷跑外挂详细分析

    Android版xx助手之天天酷跑外挂详细分析 图/文      莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也开 ...

  6. 排序算法在游戏中的应用,你确定你了解吗?(详细的图解带你实战)

    排序算法在游戏中的应用,你确定你了解吗?(详细的图解带你实战) 目录 排序算法在游戏中的应用,你确定你了解吗?(详细的图解带你实战) 1. 归并排序 1.1 作为一种典型的分而治之思想的算法应用,归并 ...

  7. 冒泡排序算法(思路分析) [数据结构][Java]

    冒泡排序算法(思路分析) 基本介绍: 冒泡排序(Bubble Sorting)的基本思想是: 通过对 "待排序序列" 从前向后一次比较相邻元素的值,若发现逆序则交换,使值较大的元素 ...

  8. HashMap 源码详细分析(JDK1.8) 1

    1.概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap.HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现.HashMap 允许 null 键和 null 值, ...

  9. Yolov1目标检测算法详细分析

    Yolov1目标检测算法详细分析 Yolov1介绍 这是继RCNN,fast-RCNN 和 faster-RCNN之后,rbg(Ross Girshick)大神挂名的又一大作,起了一个很娱乐化的名字: ...

最新文章

  1. 【arduino】用VSCode替代Arduino编辑器,arduino VSCode编辑器
  2. Python-属性(property)
  3. ListView添加项目带序列
  4. 限制checkbox复选框的最大可选数量
  5. C#_基础_部分类partial(十八)
  6. 用计算机控制人造卫星和导弹发射,广西成人高校计算机实用基础统考理论试题(...
  7. SQL第四周学习笔记---python操作数据库、游标、sqlite、mysql数据库银行转账
  8. React移动web极致优化
  9. for of 的基本用法
  10. Codeigniter 4基础教程(1)-- Wamp+CodeIgniter 4以及helloworld
  11. win10ie服务器未响应,win10ie浏览器老是无响应是什么原因?解决win10ie浏览器老是无响应的方法介绍...
  12. 文件服务 FTP Server
  13. 黑客攻防---从零开始认识黑客,简单认知
  14. 近岸蛋白通过注册:预计9个月营收2.3亿 同比降幅超15%
  15. Electron 实现百度快搜
  16. 滕州小学计算机教室,东湖教育四十年|滕州小学--小学校 大世界
  17. 【Spark GraphX】社交网图分析
  18. img显示保存在服务器中的图片,img显示服务器图片不显示
  19. Git中tag使用教程
  20. 重新开发一套股票分析及监控软件,接受定制需求

热门文章

  1. html2canvas以及domtoimage的使用踩坑总结 动态获取的二维码失效如何生成海报
  2. 魔兽世界---熊猫人之谜
  3. R语言时间序列分析-根据aic值选择arima模型
  4. 【高分励志电影合集】
  5. android电视 浏览器 全屏,小屏幕大世界 傲游云浏览器Android全屏模式
  6. 夕阳无限好 只是近黄昏
  7. 08 web原理与web测试
  8. ActiveMQ使用及原理浅析(消息队列)
  9. 以太网实习_计算机网络实习心得体会
  10. opencv 角点检测