冒泡排序原理详解
来源:互联网 发布:网络硬盘录像机连接图 编辑:程序博客网 时间:2024/05/16 01:34
在查阅资料和网上搜索前辈讲解分析后,通过操作分析终于搞明白了困扰已久的冒泡排序,记录如下:
原理是:临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换,
这样一趟过去后,最大或最小的数字被交换到了最后一位,
然后再从头开始进行两两比较交换,直到倒数第二位时结束.代码如下 :
public class MaoPaoTest {public static void main(String[] args) {int[] num = {8,4,11,7,3};/*使用Java自己提供的Arrays.sort(数组类型)方法亦可完成java.util.Arrays.sort(num);*///System.out.println(num.length);for(int i=1;i<num.length;i++){for(int j=0;j<num.length-i;j++){if(num[j]>num[j+1]){//两两之间进行比较,大的放后,小的放前int temp = num[j];num[j] = num[j+1];num[j+1] = temp;}}System.out.print("第"+i+"趟排序后的结果:");for(int j=0;j<num.length;j++){System.out.print(num[j]+" ");}System.out.println();//换行}//排序完成后打印结果:for(int i=0;i<num.length;i++){System.out.print(num[i]+" ");}}}
以上程序分析:
示例如下(按从小到大排序):
原始待排序数组:| 8 | 4 | 11 | 7 | 3
第一趟排序(外循环)
进入内层循环:
第一次两两比较8 > 4 交换(内循环)
交换前状态| 8 | 4 | 11 | 7 | 3
交换后状态| 4 | 8 | 11 | 7 | 3
第二次两两比较,8 < 11,不交换
交换前状态| 4 | 8 | 11 | 7 | 3
交换后状态| 4 | 8 | 11 | 7 | 3
第三次两两比较,11 > 7 交换
交换前状态| 4 | 8 | 11 | 7 | 3
交换后状态| 4 | 8 | 7 | 11 | 3
第四次两两比较,11 > 3 交换
交换前状态| 4 | 8 | 7 | 11 | 3
交换后状态| 4 | 8 | 7 | 3 | 11
第二趟排序(外循环)
进入内层循环:
第一次两两比较4 < 8,不交换
交换前状态| 4 | 8 | 7 | 3 | 11
交换后状态| 4 | 8 | 7 | 3 | 11
第二次两两比较,8 > 7 交换
交换前状态| 4 | 8 | 7 | 3 | 11
交换后状态| 4 | 7 | 8 | 3 | 11
第三次两两比较,8 > 3 交换
交换前状态| 4 | 7 | 8 | 3 | 11
交换后状态| 4 | 7 | 3 | 8 | 11
第三趟排序(外循环)
进入内层循环:
第一次两两比较,4 < 7,不交换
交换前状态| 4 | 7 | 3 | 8 | 11
交换后状态| 4 | 7 | 3 | 8 | 11
第二次两两比较,7 > 3 交换
交换前状态| 4 | 7 | 3 | 8 | 11
交换后状态| 4 | 3 | 7 | 8 | 11
第四趟排序(外循环)
进入内层循环:
第一次两两比较,4 > 3 交换
交换前状态| 4 | 3 | 7 | 8 | 11
交换后状态| 3 | 4 | 7 | 8 | 11
排序完毕,输出最终结果:3 4 7 8 11
- 冒泡排序原理详解
- 排序详解:冒泡排序
- 冒泡排序的原理
- 冒泡法排序原理
- 冒泡排序原理解析
- php 冒泡排序原理
- 数组冒泡排序原理
- 冒泡排序原理
- 冒泡排序原理
- 冒泡排序的原理
- 算法--冒泡排序原理
- 冒泡排序(bubble_sort)详解
- 冒泡排序详解
- PHP冒泡排序详解
- 冒泡排序详解
- 详解冒泡排序
- 冒泡排序深入详解
- 冒泡排序代码详解
- Qt 获取屏幕的大小
- TCP协议疑难杂症全景解析
- OCP-1Z0-051 第86题 显式转换和隐式转换
- xml文件处理
- LeeCode Pascal's Triangle II
- 冒泡排序原理详解
- xp系统启动时0x0000007B(0XF799A524,0XC0000034,0X00000000,0X00000000)错误
- 树dp (至少砍掉几个树枝,能得到有m个结点的子树)
- 在Visual Studio 2010[VC++]中使用ffmpeg类库
- 串口通信程序中十六进制格式发送和接收实现
- pcap文件解析(二)--初识IP包
- 2013级C++第11周(春)项目——通过继承拥有基类的资源 【项目1 - 存储班长信息的学生类】
- Android 常见错误总结
- easyui 下拉框类控件使用注意