冒泡排序作为最基础的排序是必须得熟练掌握的
话不多说先上代码
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);
}
}
}
}
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];
}
冒泡排序的思想就是每次与自己相邻的一个元素相比较,如果左边的数大于右边的数,则进行交换,这样每次遍历完一遍之后会发现,我们遍历的结果就是把最大的数放到末尾,此时最后的位置就是我们需要排序中的最大的那个数,这样我们只需要再把前面的那些数再次进行相同的操作,这样看来,每次循环就是找出最大的数,并且放到后面去。
时间复杂度为O(n2)