冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
冒泡排序的基本思想是:对于给定的n个元素的数列,从第一个元素开始依次和相邻的元素比较,如果顺序不对就交换位置,一轮比较下来,最大(或最小)的元素就会被交换到数列的末尾。然后再从头开始进行下一轮比较,直到所有元素都排好序为止。
原理:
- 从列表的第一个元素开始,依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。
- 继续向后遍历,重复上述比较和交换的步骤,直到列表末尾。这样一趟下来,最大的元素就会被交换到列表的最后一个位置。
- 重复以上步骤,每次内循环都会将一个当前未排序的最大元素交换到正确的位置。
- 外循环控制排序的趟数,每一趟都会确定一个未排序部分的最大元素,直到整个列表排序完成。
冒泡排序的优点是简单易懂,缺点是效率较低,时间复杂度为O(n^2),不适用于大规模数据的排序。