/**
* 冒泡排序:
* 时间复杂度:O(n^2)
* 额外空间复杂度:O(1)
*/
public class BubbleSort {
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) return;
for (int i = 0;i < arr.length-1; i++) {
for (int j = 0;j < arr.length - i - 1; j++) {
if (arr[j] > arr[j+1]) {
swap(arr, j, j+1);
}
}
}
}
public static void swap(int[] arr, int i, int j) {
int tmp = arr[i];
arr[i] = arr[j];
arr[j] = tmp;
}
public static void main(String[] args) {
int size = 10;
int[] arr = new int[size];
int[] arr_ = new int[size];
// 随机生成10个1~100的正数进行排序
for (int i = 0;i < size; i++) {
arr[i] = (int) (Math.random()*100+1);
arr_[i] = arr[i];
}
// 调用函数
bubbleSort(arr);
Arrays.sort(arr_);
/* 比较结果 */
for (int i = 0;i < size; i++) {
if (arr[i] != arr_[i]) System.out.println("排序错误,结果不一致!!");
}
// 输出排序结果
for (int i = 0;i < size; i++) {
System.out.printf("%d ", arr[i]);
}
}
}
冒泡排序(BubbleSort)
于 2022-07-09 19:12:07 首次发布