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

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

前言

冒泡法详解

数组排序(冒泡法)

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

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

案例:

将五个无序的数: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

相关文章
|
4月前
|
搜索推荐 Java 索引
|
4月前
|
搜索推荐 Java 索引
|
4月前
|
搜索推荐 Java
|
4月前
|
搜索推荐 Java
|
4月前
|
搜索推荐 Java
|
7月前
|
存储 C++
【C++】function包装器全解(代码演示,例题演示)
【C++】function包装器全解(代码演示,例题演示)
|
存储 编译器 C语言
【C】函数真的难嘛?其实一点也不难,原理很简单。
# 什么是函数 程序是由多个零件组合而成的,而函数就是这种“零件”的一个较小单位。 ## main函数和库函数 C语言程序中,main函数是必不可少的。程序运行的时候,会执行main函数的主题部分。main函数中使用了printf、scanf、puts等函数。由C语言提供的这些为数众多的函数称为库函数。 ## 什么是函数 当然,我们也可以自己创建函数。而实际上,我们也必须亲自动手创建各种函数。下面我们来自己创建一个简单的函数。 创建一个函数,接收两个整数参数,返回较大整数的值。 printf函数和scanf函数等创建得比较好得函数,即使不知道其内容,只要了解使用方法,也可以轻松使用。 ## 函
|
C++
使用C++编写一个AVL的增删改查代码并附上代码解释
使用C++编写一个AVL的增删改查代码并附上代码解释
96 0
|
存储 Java
【JAVA定时器】四种常见定时器的原理和简单实现,有图易懂 中
【JAVA定时器】四种常见定时器的原理和简单实现,有图易懂 中
292 0
【JAVA定时器】四种常见定时器的原理和简单实现,有图易懂   中
|
Java BI Spring
【JAVA定时器】四种常见定时器的原理和简单实现,有图易懂 上
【JAVA定时器】四种常见定时器的原理和简单实现,有图易懂 上
539 0
【JAVA定时器】四种常见定时器的原理和简单实现,有图易懂   上
下一篇
DataWorks