BubbleSort冒泡排序_Python实现

我的未来我决定 提交于 2019-12-26 01:37:58
# BubbleSort冒泡排序


def bubble_sort(li):
    for i in range(len(li) - 1):  # len为个数, range_len为所有元素下标 range(len-1)为冒泡次数,冒泡次数为元素个数-1
        for j in range(len(li) - i - 1):  # 此处-i 能够避免继续遍历已经排列好的次序
            if li[j] >= li[j + 1]:
                li[j], li[j + 1] = li[j + 1], li[j]
    return li


list = [1, 55, 98984, 65, 165, 356, 54, 3, 645, 74, 64, 32, 15, 22, 7481, 4, 65]

li = bubble_sort(list)

print(li)

  

冒泡排序的特征:
双遍历.
遍历i , 对比i 和 i+1 的值
如果前者大于后者则交换两者位置

第一次遍历后, 最大的排在最后.
下次遍历时候, 总位数减去已排列位数.在剩余的位数中找最大放在最后.

冒泡排序不需要定义变量

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!