📅  最后修改于: 2023-12-03 15:22:36.271000             🧑  作者: Mango
冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,直到没有要交换的元素为止。该算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。
以下是冒泡排序的Python实现:
def bubble_sort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
# 最后i个元素已经排好序
for j in range(0, n - i - 1):
# 当前元素大于下一个元素时,交换两个元素的位置
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
以上代码中,我们首先定义了一个 bubble_sort
函数,它接收一个数组参数 arr
,然后使用两层循环来遍历数组,并通过比较相邻元素的大小来决定是否交换它们的位置。当所有的数组元素都被遍历完并完成排序时,该函数返回排序后的数组。
最优时间复杂度:$O(n)$
最坏时间复杂度:$O(n^2)$
平均时间复杂度:$O(n^2)$
空间复杂度:$O(1)$
冒泡排序是一种稳定的排序算法,由于它的时间复杂度较高,通常比较适用于数据量较小的数列。