冒泡排序由浅入深详细分析图解
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("]");}
}
冒泡排序由浅入深详细分析图解相关推荐
- 如何看懂k线图:K线详细分析图解
K线图(Candlestick chart)源处于日本德川幕府时代,它是被当时日本的米市商人用来记录米市的行情与价格波动,因为其独到的标画方式而被引入到股市及期货市场.所有的投资者都可以根据K线的实体 ...
- redis原理详细分析图解(最全的都在这里)
服务化有什么好处? 服务化的一个好处就是,不限定服务的提供方使用什么技术选型,能够实现大公司跨团队的技术解耦,如下图所示: 服务A:欧洲团队维护,技术背景是Java 服务B:美洲团队维护,用C++实现 ...
- HashMap 源码详细分析(JDK1.8)
1. 概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap.HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现.HashMap 允许 null 键和 null 值 ...
- 排序算法 快速排序【详细步骤图解】
排序算法 快速排序[详细步骤图解] 快速排序 主要思想 图解 第一轮分割序列 第二轮分割序列 --- 左子序列 小结 第三轮分割序列 --- 右子序列 C++实现 总结 快速排序 给定一个序列:22 ...
- Android版xx助手之天天酷跑外挂详细分析
Android版xx助手之天天酷跑外挂详细分析 图/文 莫灰灰 背景 近些年来,移动互联网的大肆崛起,潜移默化中影响着人们的生活和工作习惯.当腾讯的微信平台接入手机游戏之后,移动端的游戏也开 ...
- 排序算法在游戏中的应用,你确定你了解吗?(详细的图解带你实战)
排序算法在游戏中的应用,你确定你了解吗?(详细的图解带你实战) 目录 排序算法在游戏中的应用,你确定你了解吗?(详细的图解带你实战) 1. 归并排序 1.1 作为一种典型的分而治之思想的算法应用,归并 ...
- 冒泡排序算法(思路分析) [数据结构][Java]
冒泡排序算法(思路分析) 基本介绍: 冒泡排序(Bubble Sorting)的基本思想是: 通过对 "待排序序列" 从前向后一次比较相邻元素的值,若发现逆序则交换,使值较大的元素 ...
- HashMap 源码详细分析(JDK1.8) 1
1.概述 本篇文章我们来聊聊大家日常开发中常用的一个集合类 - HashMap.HashMap 最早出现在 JDK 1.2中,底层基于散列算法实现.HashMap 允许 null 键和 null 值, ...
- Yolov1目标检测算法详细分析
Yolov1目标检测算法详细分析 Yolov1介绍 这是继RCNN,fast-RCNN 和 faster-RCNN之后,rbg(Ross Girshick)大神挂名的又一大作,起了一个很娱乐化的名字: ...
最新文章
- 【arduino】用VSCode替代Arduino编辑器,arduino VSCode编辑器
- Python-属性(property)
- ListView添加项目带序列
- 限制checkbox复选框的最大可选数量
- C#_基础_部分类partial(十八)
- 用计算机控制人造卫星和导弹发射,广西成人高校计算机实用基础统考理论试题(...
- SQL第四周学习笔记---python操作数据库、游标、sqlite、mysql数据库银行转账
- React移动web极致优化
- for of 的基本用法
- Codeigniter 4基础教程(1)-- Wamp+CodeIgniter 4以及helloworld
- win10ie服务器未响应,win10ie浏览器老是无响应是什么原因?解决win10ie浏览器老是无响应的方法介绍...
- 文件服务 FTP Server
- 黑客攻防---从零开始认识黑客,简单认知
- 近岸蛋白通过注册:预计9个月营收2.3亿 同比降幅超15%
- Electron 实现百度快搜
- 滕州小学计算机教室,东湖教育四十年|滕州小学--小学校 大世界
- 【Spark GraphX】社交网图分析
- img显示保存在服务器中的图片,img显示服务器图片不显示
- Git中tag使用教程
- 重新开发一套股票分析及监控软件,接受定制需求