说明:参考书目为《Computer Algorithms --- Introduction to Design and Analysis》(第三版)Sara Baase, Allen Van Gelder
部分内容参考自大工林晓惠老师的课程【算法设计与分析】讲解。林老师讲算法非常细致,让人很容易理解,推荐一波~
(如部分内容涉及侵权,请联系我删除,谢谢)
之前的文章请见:
本篇文章目录
冒泡排序
1. 定义
依次比较相邻的两个元素,若逆序则交换两个元素。每趟冒泡排序都能将子序列的最大数据元素放在最终的位置上。若一趟冒泡排序没有做任何数据交换,则说明子序列已经升序,可提前终止排序。
2. 排序过程示例
3. 算法代码
输入:数组Element[] E,大小为n(n>=0)
输出:排序后的Element[] E
void bubbleSort(Element[] E, int n)
int numPairs; // 待比较的数据对数量。即排除已固定位置的数据,对剩下的子序列进行排序所需比较次数
boolean didSwitch; // 在一趟排序中是否有数据交换&