📜  冒泡排序python(1)

📅  最后修改于: 2023-12-03 15:22:36.271000             🧑  作者: Mango

冒泡排序Python介绍

冒泡排序是一种简单的排序算法。它重复地遍历要排序的数列,比较相邻的两个元素,如果它们的顺序错误就把它们交换过来,直到没有要交换的元素为止。该算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端。

算法步骤
  1. 比较相邻的元素,如果前一个比后一个大,就交换它们两个。
  2. 对每一对相邻元素做同样的工作,从开始的第一对到结尾的最后一对。经过这一步之后,最后的元素会是最大的数。
  3. 针对所有的元素重复以上的步骤,除了最后一个。
  4. 重复步骤1~3,直到排序完成。
代码实现

以下是冒泡排序的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)$

冒泡排序是一种稳定的排序算法,由于它的时间复杂度较高,通常比较适用于数据量较小的数列。