最近在看左神的算法课,理解之后在此将代码记录下来
/**
* 去除低阶项,保留高阶项,去除高阶项的系数
* 冒泡排序,时间复杂度=o(N^2)=N*(N-1)*...*1=aN^2+bN+1
*
* @param arr 待排的数组
*/
private static void bubbleSort(int[] arr) {
if (arr == null || arr.length < 2) {
return;
}
for (int end = arr.length - 1; end > 0; end--) {
for (int i = 0; i < end; i++) {
if (arr[i] > arr[i + 1]) {
swap(arr, i, i + 1);
}
}
}
}
/**
* 交换数组中i和j的位置
*
* @param arr 数组
* @param i i
* @param j j
*/
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}