两个相邻的元素互相比较,符合条件就交换位置。
public int[] bubbleSort(int[] 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;
}
以排正序为例,每比较一轮,大的元素都“沉”到底部,小的元素则往上“冒”,故每一轮的比较次数都依次减少。冒泡即视感。