📜  python中的冒泡排序(1)

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

Python中的冒泡排序

介绍

冒泡排序一般被认为是最简单实现的排序算法之一。它的基本思想是,将待排序元素按照大小关系两两比较,将大的数往后冒泡,小的数则往前移动。在一次冒泡过程中,如果发现后一个元素比前一个元素小,则交换这两个元素的位置。重复这个过程,直到所有的元素都有序排列。冒泡排序的时间复杂度为O(n^2),并且排序的稳定性非常高。

算法原理

冒泡排序通常有两种实现方式:一种是从前往后比较元素,一种是从后往前比较元素。以前者为例,其基本操作如下:

  1. 比较相邻的两个元素,如果前一个比后一个大,则交换这两个元素的位置;
  2. 对每一对相邻的元素进行比较,重复上述操作,直到最后一对元素;
  3. 重复上述过程,直到所有的元素都有序排列。
实现示例
def bubble_sort(array):
    """
    冒泡排序算法
    :param array: 待排序数组
    :return: 排序后的数组
    """
    for i in range(len(array)):
        # 每完成一次冒泡排序,就会有一个元素被归位,因此外层循环的范围应该逐渐缩小
        # i表示已归位的元素数量
        for j in range(len(array) - 1 - i):
            # 从头开始比较相邻元素
            if array[j] > array[j+1]:
                # 如果前一个元素比后一个元素大,交换它们的位置
                array[j], array[j+1] = array[j+1], array[j]

    return array
示例说明

以上实现方式采用嵌套循环来遍历待排序的数组,时间复杂度为O(n^2)。外层循环变量i表示已归位的元素数量,内层循环变量j表示每次比较两个相邻元素的下标。每次内层循环遍历时,只比较到未归位元素中的最后一个元素,避免重复比较已归位的元素,从而提高排序效率。

总结

冒泡排序是一种简单而有效的排序算法,它的代码实现也非常易于理解。但由于时间复杂度比较高,适合于处理小规模的数据集,不适合处理大规模数据。在实际工作中,可以结合其他高效的排序算法来进行优化,提高排序效率。