什么是冒泡排序
冒泡排序的英文Bubble_Sort,是一种最基础的交换排序。
原理:
- 每一趟只能确定将一个数归位。即第一趟只能确定将末位上的数归位,第二趟只能将倒数第 2 位上的数归位,依次类推下去。如果有 n 个数进行排序,只需将 n-1 个数归位,也就是要进行 n-1 趟操作。而 “每一趟 ” 都需要从第一位开始进行相邻的两个数的比较,将较大的数放后面,比较完毕之后向后挪一位继续比较下面两个相邻的两个数大小关系,重复此步骤,直到最后一个还没归位的数。*
如下图
从图中可以看出冒泡排序就像水中的气泡一样从低向上慢慢变大(取决于倒序还是顺序)所以得名冒泡排序
代码实现
//冒泡排序
public static int[] bubbleSort(int[] arr) {
if (arr.length <= 1) return arr;
for (int i = 0; i < arr.length - 1; i++) {
for (int j = 0; j < arr.length - 1 - i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
return arr;
}
代码实现方式不唯一,欢迎流言讨论。