当前位置: 欣欣网 > 码农

Python冒泡算法及原理

2024-03-05码农

Python,学霸

  • 阅读指南

  • 原理

  • 实例

  • 输出

  • 效果

  • 原理

    冒泡排序(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的列表,一次比较两个元素,如果它们的顺序错误则交换它们的位置。通过多次遍历整个列表,直到不再需要交换,即可完成排序。具体来说,冒泡排序的基本思路如下:

  • 从头开始,依次比较相邻的两个元素,如果前一个元素大于后一个元素,则交换它们的位置。

  • 继续向列表的下一个元素移动,重复上述比较和交换过程,直到到达列表的末尾。

  • 重复以上步骤,每次遍历都会使列表中最大的元素沉底(类似气泡向上升),直至列表完全有序。

  • 实例


    import time
    def bubble_sort(data):
    start_time = time.time()
    n = len(data)
    for i in range(n):
    for j in range(n - i - 1):
    if data[j] > data[j + 1]:
    data[j], data[j + 1] = data[j + 1], data[j]
    #打印排序结果
    print_data(data)
    #增加等待时间
    time.sleep(0.5)
    end_time = time.time()
    #计算排序用时
    sort_time = end_time - start_time
    print("\n冒泡排序用时:", sort_time)
    #打印排序结果
    def print_data(data):
    print('\r'' '.join(['*' * num for num in data]), end='')
    data = [5, 9, 1, 4, 6]
    print("原始数据:"' '.join(['*' * num for num in data]))
    bubble_sort(data.copy())

    输出

    原始数据: ***** ********* * **** ******
     * **** ***** ****** *********
    冒泡排序用时: 5.009825706481934

    效果