冒泡排序的原理:
从第一个元素开始,与紧挨的下一个元素比较,如果满足某个条件,交换一下。然后让第二个元素与紧挨的下一个元素比较,直到紧邻的所有元素比较完毕。在这个过程中最值挪到了数组的尾端,第一次冒泡结束。
开始第二次冒泡,重复上一次过程,由于上一次冒泡的最值已经挪到尾端,所以尾端的元素就不用参与比较。
重复冒泡的过程,直到无法比较。
上图看起来比较直观:
观察一下这张图,这是一个长度为5的数组,冒泡了4次。在看每次冒泡的比较次数,发现比较的次数与第几次冒泡的和为5。
以此类推:长度为N的数组,冒泡N-1次,每次冒泡的次数=N-第N次冒泡。
冒泡排序的思路:
就是双重循环,外层循环控制第几次冒泡,内层循环控制比较次数,而比较的次数由外层参数决定。
根据这个思路写出代码(注意数组下标的边界问题):
public class Demo05 {
public