为什么叫冒泡排序?
因为每次比较都会比较出最大的一个,就像碳酸饮料一样浮出最大的一个,所以叫冒泡排序
通过实验可以得出几个结论
1.一共有几个元素参与比较(6个)
2.一个比较了几轮(5轮)
3.每一轮是怎么比较的(相邻元素进行比较,顺序不对就互换位置–顺序是前一个跟后一个进行比较)
4.每轮比较的结果(每轮都会确定一定最大的元素)
5.有哪些相邻元素可以不参与比较(之前轮确认的最大值)
我们怎么实现冒泡排序?
我们可以通过for循环嵌套来实现
外层循环控制的是比较的轮数
内层循环控制的每轮比较的次数
在比较过程中,如果顺序不对就互换位置
实现思路循环嵌套
外层循环:控制的是比较的轮数,如果是n个数据,最多需要比较n-1轮
内层循环:控制在每轮循环中的相邻比较+交换位置
package sort;
import java.util.Arrays;
/**
* 该类用来完成冒泡排序
*/
public class JavaSort {
public static void main(String[] args) {
//创建一个无序数组
/*
数组的创建
动态创建:int[] a = new int[5]
静态创建:1.int[] a= new int[]{1,2,3,4}
2.int[] a ={1,2,3,4,5}
*/
int[] a ={27,96,73,25,21};
//调用method里的方法完成排序
int[] newA = method(a);
}
private static int[] method(int[] a) {
//1.外层循环控制的是轮数,假设有n个数,最多比较n-1次
//开始值:1 结束值:<a.length-1; 变化:++
for (int i=1;i<a.length-1;i++){
//内层循环控制的是比较+互换位置
for (int j=0;j<a.length-i;j++){
if(a[j]>a[j+1]){
//交换数据
int t =a[j];
a[j]=a[j+1];
a[j+1]=t;
}
}
System.out.println("第"+i+"轮的结果"+ Arrays.toString(a));
}
return a;
}
}