不会还有人不会冒泡排序吧!
前言
冒泡排序概念
冒泡排序原理
冒泡排序伪代码
冒泡排序源代码
一、冒泡排序是什么?
概念:简单来说就是将一组无序的数组,从小到大进行排序,例如:{36,89,45,24,100,300}
进行排序得到如下结果{24,36,45,89,100,300}
。
二、冒泡排序原理
1.做法
这种排序类似于:鱼吐泡泡
大的先出,小的后出。
就是一组数组(int[] arr={36,89,45,24,100,300}
)中的元素相邻两个元素之间进行比较。如果前一个大于比较的对象就交换。
第一次循环:36,89,45,24,100,300
1、比较36与89 不交换
2、比较89与45 交换
3、比较89与24 交换
4、比较89与100 不交换
5、比较100与300 不交换
最后找到最大值
第二次循环:36,89,45,24,100
1、比较36与89 不交换
2、比较89与45 交换
3、比较89与24 交换
4、比较89与100 不交换
第三次循环:36,89,45,24
1、比较36与89 不交换
2、比较89与45 交换
3、比较89与24 交换
第四次循环:36,45,24
1、比较36与45 不交换
2、比较45与24 交换
第五次循环:36,24
1、比较36与24 交换
2.示意图
三、伪代码
for (int i = num.length-1; i >0 ; i++) {
for (int j = 0; j < i; j++) {
if(num[j]>num[j+1]){
int temp=0;
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
怎么写交换语句呢?
例如:你可以想象你手中有一个手机和一本书,怎么去交换他们的位置呢?当然是把手机放在某一个地方然后拿书,再放手机的地方拿手机
四、源代码
package 包名;
public class 类名 {
public static void main(String[] args) {
int[] 数组名={36,89,45,24,100,300};
int temp;
for (int i = 数组名.length-1; i >0 ; --i) {
for (int j = 0; j < i; j++) {
if(num[j]>数组名[j+1]){
temp=数组名[j];
数组名[j]=数组名[j+1];
数组名[j+1]=temp;
}
}
}
//遍历一维数组
for (int i = 0; i < 数组名.length; i++) {
System.out.print(数组名[i]+" ");
}
}
}
五、运行结果