详细分析冒泡法执行流程和代码演示

简介: 超详细分析冒泡法执行流程

前言

冒泡法详解

数组排序(冒泡法)

排序是指将多个数据,按指定的顺序进行排列的过程。

冒泡排序法:通过比较两个相邻的数的大小(如果前面的数大于后面的数就进行交换 / 后面的数大于前面的数就进行交换 ),来进行一个数组的排序,使整个数组中的数据按  从小到大/从大到小  的顺序进行排序。

案例:

将五个无序的数:24,69,80,57,13 使用冒泡排序法将其排成一个从小到大的有序数列。

运行目标:

数组[24,69,80,57,13]

第一轮循环:目标是把最大的数放到数组最后位置

第1次比较 [24,69,80,57,13]

第2次比较 [24,69,80,57,13]

第3次比较 [24,69,57,80,13]

第4次比较 [24,69,57,13,80]


第二轮循环:目标是把第二大的数放到数组倒数第二位置

第1次比较 [24,69,57,13,80]

第2次比较 [24,57,69,13,80]

第3次比较 [24,57,13,69,80]


第三轮循环:目标是把第三大的数放到数组倒数第三位置

第1次比较 [24,57,13,69,80]

第2次比较 [24,13,57,69,80]


第四轮循环:目标是把第三大的数放到数组倒数第四位置

第1次比较 [13,24,57,69,80]


代码:

publicclassBubbleSort {
publicstaticvoidmain(String[] args) {
int[] arr= {24 , 69 , 80 , 57 , 13};
inttemp; //用于辅助变量交换// 先死后活 => 4就是 arr.length - 1for(inti=0; i<arr.length-1; i++) {// 外层循环四次for(intj=0; j<arr.length-1-i; j++) { 
// 四次比较 -> 三次 -> 二次 -> 一次// 如果后面的数大于前面的数就进行交换if(arr[j] >arr[j+1]) {
temp=arr[j+1];
arr[j+1] =arr[j];
arr[j] =temp;
                }
            }
System.out.println("\n ===第"+ (i+1) +"轮");
for(intj=0; j<arr.length ; j++) {
System.out.print(arr[j] +"\t");
            }
        }
    }
}

分析:

1)一共有五个元素,进行了四轮循环

2)每一轮的循环都可以确定一个数的位置,比如第一轮循环确定了最大的一个数,第二轮循环确定了第二大的数……

3)当进行比较时,只要前面的数大于后面的数就进行交换

4)每轮的比较次数在减少,4 => 3 => 2 => 1,因为每轮都会确定一个数的位置image.gif

相关文章
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
搜索推荐 Java 索引
|
2月前
|
搜索推荐 Java
|
2月前
|
搜索推荐 Java
|
2月前
|
搜索推荐 Java
|
2月前
|
搜索推荐 Java
|
2月前
|
存储 搜索推荐 Java