冒泡排序
相邻两个数据进行比较,大的放在最后。
数组arr = {10, 2, 5, 3, 8};
- 比较4次:arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3] arr[3]-arr[4]
- 比较3次:arr[0]-arr[1] arr[1]-arr[2] arr[2]-arr[3]
- 比较2次:arr[0]-arr[1] arr[1]-arr[2]
- 比较1次:arr[0]-arr[1]
实现代码
public class Main {
public static void main(String[] args) {
int[] arr = {10, 2, 5, 3, 8};
int temp;
// 外循环:比较的轮数
for (int i = 0; i < arr.length - 1; i++) {
// 内循环:比较的次数
// -1: 防止索引越界
// -i: 优化比较次数,提高效率
for (int j = 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;
}
}
}
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
}