pubanswer

python如何实现冒泡排序?

布莱克2024-05-06

冒泡排序是排序算法里的经典,它的基本思想是通过重复遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。

假设我们有这样一个数列需要排序:

numbers = [64, 34, 25, 12, 22, 11, 90]

接下来这个过程就像气泡一样,较小(或较大,取决于你是要升序还是降序排序)的元素会逐渐“浮”到数列的顶端。

def bubble_sort(arr):
    n = len(arr)
    # 外层循环控制从头到尾的遍历次数
    for i in range(n):
        # 已经排序的部分就不再遍历了
        for j in range(0, n-i-1):
            # 交换如果当前的元素大于下一个元素
            if arr[j] > arr[j+1]:
                arr[j], arr[j+1] = arr[j+1], arr[j]

使用这个函数,我们就能对numbers进行排序了:

bubble_sort(numbers)
print("排序后的数列:", numbers)

运行上面的代码,你会看到排序后的数列是这样的:

排序后的数列: [11, 12, 22, 25, 34, 64, 90]

冒泡排序虽然不是最高效的排序算法(它的时间复杂度是O(n^2),在处理大数据量时可能会比较慢),但它的思想非常直观,实现也很简单,是学习排序算法的好起点。

希望这对你有帮助。