package basic_class_01;
import java.util.Arrays;
/**
*
* 冒泡排序细节的讲解与复杂度分析
* 时间复杂度O(N^2),额外空间复杂度O(1)
* 此排序算法仅用于教学
*/
public class Code_00_BubbleSort {
public static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int e = arr.length - 1; e > 0; e--) {
for (int i = 0; i < e; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
}
}
}
//^异或运算
//异或运算有一个特点
//如10^8=2
//但10^8^8=10
public static void swap(int[] arr, int i, int j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
// for test
public static void comparator(int[] arr) {
Arrays.sort(arr);
}
// for test
public static int[] generateRandomArray(int maxSize, int maxValue) {
//生成长度随机的数组
int[] arr = new int[(int) ((maxSize + 1) * Math.random())];
for (int i = 0; i < arr.length;
01.冒泡排序 - BubbleSort(左神算法基础班源码)
最新推荐文章于 2022-08-29 21:46:46 发布