冒泡排序的例子 site:blog.csdn.net
时间: 2024-01-04 11:01:04 浏览: 33
冒泡排序是一种简单但效率较低的排序算法。其基本思想是通过相邻元素之间的比较和交换来将较大或较小的元素逐步“冒泡”到序列的一端。
下面以一个例子来说明冒泡排序的过程:
假设有一个待排序的整数数组arr,初始状态如下:
arr = [7, 3, 5, 1, 9, 2]
第一次排序:
从左到右,依次将相邻两个元素比较,如果前一个元素大于后一个元素,则交换它们的位置。经过一轮比较交换后,最大的元素9被交换到了序列末尾。
比较过程:[7, 3, 5, 1, 9, 2] -> [3, 5, 1, 7, 2, 9]
交换过程:[7, 3] -> [3, 7],[5, 1] -> [1, 5],[7, 2] -> [2, 7]
第二次排序:
上述比较交换过程将最大的元素9移到了末尾。再次从左到右进行相邻元素的比较和交换,将次大元素7移到了倒数第二个位置。
比较过程:[3, 5, 1, 7, 2, 9] -> [3, 1, 5, 2, 7, 9]
交换过程:[3, 5] -> [3, 5],[5, 2] -> [2, 5]
第三次排序:
上述比较交换过程将次大的元素7移到了倒数第二个位置。再次进行相邻元素的比较和交换,将下一个最大元素5移到了倒数第三个位置。
比较过程:[3, 1, 5, 2, 7, 9] -> [3, 1, 2, 5, 7, 9]
交换过程:[3, 1] -> [1, 3],[3, 2] -> [2, 3]
第四次排序:
上述比较交换过程将下一个最大元素3移到了倒数第三个位置。
比较过程:[1, 3, 2, 5, 7, 9] -> [1, 2, 3, 5, 7, 9]
交换过程:[3, 2] -> [2, 3]
至此,经过四轮的排序,数组arr已按升序排列:arr = [1, 2, 3, 5, 7, 9]。
可以看出,冒泡排序中每一轮都使得当前未排序部分的最大元素“浮”到了正确的位置。算法的时间复杂度为O(n^2),其中n为待排序元素的个数。虽然冒泡排序的效率不高,但其操作简单易懂,因此在实际应用中有时也会使用到。