目标:冒泡排序
引入:
我们之前排序都是调用sun公司写好的API,直接实现排序!
我们现在来自己通过一种比较算法实现排序。编程思想的技术,提高编程能力和理解能力。
冒泡排序的作用:
可以用于对数组或者对集合的元素进行大小排序!!
冒泡排序的核心算法思想:
int[] arr = new int[] {55, 22, 99, 88};
每次从数组的第一个位置开始两两比较。把较大的元素与较小的元素进行层层交换。
最终把当前最大的一个元素存入到数组当前的末尾。这就是冒泡思想。
冒泡排序的核心点:每次两两比较找出当前最大值冒出到当前最后面即可!!
分析:
冒泡排序总共要找几轮:数组的长度-1
每轮要比较几次:数组的长度 - i - 1
int[] arr = new int[] {55 , 22 , 99, 88};
i 比较的次数
0 3
1 2
2 1
小结:
冒泡排序的思想是每轮两两比较,较大值与后面的元素交换位置。
外部循环控制:数组的长度-1轮
每轮要比较几次:数组的长度 - i - 1
public class BubbleSort {
public static void main(String[] args) {
// 1,定义一个数组
int[] arr = new int[] {55, 22, 99, 88};
// 2.定义一个循环控制总共找几轮
for(int i = 0 ; i < arr.length - 1 ; i++){
// 3.内部循环控制当前轮比较多少次
for(int j = 0 ; j < arr.length - 1 - i ; j++){
// i = 0 j = 0 1 2
// i = 1 j = 0 1
// i = 2 j = 0
// 4.拿当前位置的元素值与后一个元素进行大小比较。
if(arr[j] > arr[j+1]){
// 必须交换位置,大的元素往后走。
int temp = arr[j+1];
arr[j+1] = arr[j];
arr[j] = temp;
}
}
}
System.out.println("结果:"+ Arrays.toString(arr));
}
}