1.冒泡排序的定义:
下大上小(下面数大,上面数小)
2.冒泡排序分析:
例如:数组[24,69,80,57,13]
第一轮排序:目标把最大的数放在最后
第一次比较:( 第一个元素和第二个元素进行比较)[24,69,80,57,13]
第二次比较:( 第二个元素和第三个元素进行比较)[24,69,80,57,13]
第三次比较:( 第三个元素和第四个元素进行比较)[24,69,57,80,13]
第四次比较:( 第四个元素和第五个元素进行比较)[24,69,57,13,80]
第二轮排序:目标把第二大的数放在倒数第二位
第一次比较:( 第一个元素和第二个元素进行比较)[24,69,57,13,80]
第二次比较:( 第二个元素和第三个元素进行比较)[24,57,69,13,80]
第三次比较:( 第三个元素和第四个元素进行比较)[24,57,13,69,80]
第三轮排序:目标把第三大的数放在倒数第三位
第一次比较:( 第一个元素和第二个元素进行比较)[24,57,13,69,80]
第二次比较:( 第二个元素和第三个元素进行比较)[24,13,57,69,80]
第四轮排序:目标把第四大的数放在倒数第四位
第一次比较:( 第一个元素和第二个元素进行比较)[13,24,57,69,80]
3.冒泡排序的特点
①一共有5个元素
②一共进行了4轮排序,可以看成是外层循环
③每一轮可以确定一个数的位置,比如第一轮排序确定最大数,第二轮,确定第二大的数的位置,以此类推
④当进行比较时,如果前面的数大于后面的数,就交换
⑤每轮比较都在减少
4.练习题
package practice;
import java.util.Scanner;
public class paixu {
public static void main(String args[]) {
int arr[]={24,69,80,57,13};
int temp=0;//用于辅助交换的变量
//将多伦排序使用外层循环包括起来
for(int i=0;i<arr.length-1;i++) {//五个数据 四轮排序
for(int j=0;j<arr.length-1-i;j++) {//第一轮四次比较,第二轮三次比较,以此类推
//如果前面的数>后面的数,就交换
if(arr[j]>arr[j+1]) {
temp=arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
System.out.println("\n===第"+(i+1)+"轮排序后===");
for(int j=0;j<arr.length;j++) {
System.out.print(arr[j]+"\t");
}
}
}
}