冒泡排序是基于 "交换" 的排序:
根据序列中两个元素关键字的比较结果来对换这两个记录在序列中的位置。
算法思路分析:
第一个 for 循环的含义是:n 个元素,最多需要处理 n-1 次。(不同元素的层面)
第二个 for 循环的含义是:这次的处理中,从右往左,不断地将这次 for 循环范围内的最小值
转移到左边。 (具体某一次的处理过程)
第一趟处理(冒泡)的结果是将元素最小值移到了最左边A[0],
第二趟是将整体第二小的元素移到了A[1]。(也是该次 for 循环元素范围的最小值)
……
每次处理结束后,都需要判断一下这一次的处理过程是否发生了交换,如果没有可以直接结束方法,
因为此时表已经有序了。( flag 标志 )=> 只要发生了一次交换值即可为 true.
算法性能分析: