冒泡排序

若如初见. 提交于 2019-12-03 13:58:14

实现思路: 使用双重for循环,内层变量为i, 外层为j,在内层循环中不断的比较相邻的两个值(i, i+1)的大小,如果i+1的值大于i的值,交换两者位置,每循环一次,外层的j增加1,等到j等于n-1的时候,结束循环

 

# 冒泡排序

def bubble(l):
    # 外层循环: 对应重复走访数据的次数
    for i in range(len(l) - 1):
        # 内层循环: 对应每次走访数据时,相邻数据对比次数
        for j in range(len(l) - i - 1):
            # 比较相邻数据 - 从小到大
            if l[j] > l[j+1]:
                # 若前者大于后者,则交换
                l[j], l[j+1] = l[j+1], l[j]

    print('重复走访数据次数:', i + 1)


# 原始数据 - 学生身高
#values = [150,120,170,160,172,144,187,200,178,166]
lst = [250, 300, 120, 144, 150, 160, 166, 170, 172, 178, 187, 200]
print('原数据', lst)
# 按照从小到打排序
bubble(lst)
# 打印排序后结果
print('排序后', lst)

 

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