问题
冒泡排序(Bubble Sort),是一种比较简单的排序算法。在冒泡排序算法中,需要重复的走访要排序的数列,一次比较两个元素,如果它们的大小顺序错误就把它们交换过来。走访数列的工作是重复地进行直到没有再需要交换的元素,也就是说该数列已经排序完成。由于在排序过程中总是小数往前放,大数往后放,相当于气泡往上升,所以称作冒泡排序。
本案例要求使用冒泡排序算法实现对数组的排序。有一个长度为10的整型数组,使用冒泡排序算法将数组按照升序排列,并输出排序的过程以及结果。程序交互情况如图所示:
方案
为了理解冒泡排序算法,我们先假设有一个长度为7的数组,数组内容如图所示:
上图中的数组元素为无序状态,为实现升序排列,可以先进行第一轮比较,过程大致如下:
1.先比较第一对相邻的元素(第一个位置的89和第二个位置的50):如果第一个比第二个大,就交换两个数值;
2.继续比较第二对相邻的元素(第二个位置和第三个位置):如果第二个位置上的数值大于第三个位置上的数值,则交换;
3.继续下去,重复上述的