一、基本思路
冒泡排序的基本思想其实非常简单:给一个长度为 N 的数组由小到大排序 ,将这个数组的元素两两进行比较,如果左边的比右边的元素大,那么就交换它们的位置。
经过一轮这样的比较,就把数组中最大的数放到了数组最右的位置。同理,接下来再把除了最后一个元素以外的数组元素进行一次这样的比较,就能把第二大的数放在倒数第二的位置。经过 N 轮这样的比较,这个数组就是有序的了。
下面用一组图来描述一下一轮比较的过程:
通过图片可以很清楚看出:冒泡排序就是每次两个相邻的元素进行比较,当不符合排序规则时则交换它们的位置。
二、代码实现
以下代码我只在自己电脑上写了几个例子测试,没有在专门的 OJ 上跑,大家参考一下。
public void bubbleSort(