普通冒泡排序算法思想: 冒泡排序是每次将最大(正序)或最小(逆序)的元素像我们的泡泡一样“冒”到序列末尾,直到整体有序为止。我们先来看看如下的过程:
比如我将 3,2,5,1,4从小到大排序
第一趟排序:
3比2大所以2,3交换位置得到 2,3,5,1,4
然后轮到3,5比较,3比5小不做交换
然后轮到5,1比较,5比1大 1,5交换位置 得到2,3,1,5,4
然后轮到5,4比较,5比4大,交换位置 得到2,3,1,4,5
如上结果可以看到 最大的5已结被“冒泡”到最末尾,下一轮排序的时候我们只需要轮询到4的位置,按照上述步骤循环,最后即可得到排序好的序列。
普通冒泡排序代码如下:
public void bubbleSort(int[] arr) {
for (int i = arr.length - 1; i > 0; i--) {
for (int j = 0; j < i; j++) {
// 前一个元素比后一个元素大
if (arr[j] > arr[j + 1]) {
// 交换
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
但是想过没有,如果我们要排序的序列基本有序