package sort;
public class bubbleSort {
public static void main(String[] args) {
int[] arr = {2,4,7,8,5,1,7};
bubble_sort(arr);
print(arr);
}
/**
* 冒泡排序,每趟最大的数到位,
* 下次比较的时候到位的数不参与比较
* @param arr
* 时间复杂度为O(N^2),空间复杂度 O(1)
* n + n-1 + n-2 + ... + 1
*/
private static void bubble_sort(int[] arr) {
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
if(arr[j] > arr[j + 1])
swap(arr, j, j+1);
}
}
}
private static void print(int[] arr) {
for (int i : arr) {
System.out.print(i+"\t");
}
}
private static void swap(int[] arr, int i, int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
/* 位运算
* arr[i] = arr[i] ^ arr[j];
* arr[j] = arr[i] ^ arr[j];
* arr[i] = arr[i] ^ arr[j];
*/
/* arr[i] = arr[i] + arr[j];
* arr[j] = arr[i] - arr[j];
* arr[i] = arr[i] - arr[j];
* */
}
}