找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 30|回复: 2

冒泡算法-python

[复制链接]

351

主题

341

回帖

2433

积分

管理员

积分
2433
发表于 2025-6-19 08:00:20 | 显示全部楼层 |阅读模式

"""
冒泡函数
    使用len函数,获得列表长度
    读取长度数据到变量n
    进入for循环,使用range函数,遍历n的值,初始值-1
        进入第二层for循环,使用range函数,遍历n-1-i的值
            比较列表内两个索引值的大小,if arr[j] > arr[j+1]:
                条件成立时,交换两个索引位置的数据 arr[j],arr[j+1]=arr[j+1],arr[j]

"""


import time

data=[5,7,3,1,8,2]
data1=data[:] #列表数据的切片复制方法,完整复制列表数据。
print("原始数据是:",data1)


def sort(arr):
    n = len(arr)
    for i in range(n - 1):  # 总共 n-1 轮
        print("第" , i , "轮排序" )
        time.sleep(0)
        for j in range(n-1-i):
            print("i=" , i , "j=" , j)
            time.sleep(0)
            if arr[j] > arr[j+1]:
                arr[j],arr[j+1]=arr[j+1],arr[j]
            print(data)
            #input("按任意键继续")

sort(data)
print("原始数据是:",data1)
print("最终结果是:",data)

回复

使用道具 举报

351

主题

341

回帖

2433

积分

管理员

积分
2433
 楼主| 发表于 2025-6-19 08:01:31 | 显示全部楼层
程序运行过程 >>>>>>>>>>>
原始数据是: [5, 7, 3, 1, 8, 2]
第 0 轮排序
i= 0 j= 0
[5, 7, 3, 1, 8, 2]
i= 0 j= 1
[5, 3, 7, 1, 8, 2]
i= 0 j= 2
[5, 3, 1, 7, 8, 2]
i= 0 j= 3
[5, 3, 1, 7, 8, 2]
i= 0 j= 4
[5, 3, 1, 7, 2, 8]
第 1 轮排序
i= 1 j= 0
[3, 5, 1, 7, 2, 8]
i= 1 j= 1
[3, 1, 5, 7, 2, 8]
i= 1 j= 2
[3, 1, 5, 7, 2, 8]
i= 1 j= 3
[3, 1, 5, 2, 7, 8]
第 2 轮排序
i= 2 j= 0
[1, 3, 5, 2, 7, 8]
i= 2 j= 1
[1, 3, 5, 2, 7, 8]
i= 2 j= 2
[1, 3, 2, 5, 7, 8]
第 3 轮排序
i= 3 j= 0
[1, 3, 2, 5, 7, 8]
i= 3 j= 1
[1, 2, 3, 5, 7, 8]
第 4 轮排序
i= 4 j= 0
[1, 2, 3, 5, 7, 8]
原始数据是: [5, 7, 3, 1, 8, 2]
最终结果是: [1, 2, 3, 5, 7, 8]
回复

使用道具 举报

351

主题

341

回帖

2433

积分

管理员

积分
2433
 楼主| 发表于 2025-6-19 08:15:36 | 显示全部楼层
"""
冒泡算法
"""
def sort(arr):
    n=len(arr)
    for i in range(n-1):
        for j in range(n-1-i):
            if arr[j] > arr[j+1]:
                arr[j],arr[j+1]=arr[j+1],arr[j]

data=[3,5,1,8,2,10]
sort(data)
print(data)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|笔记

GMT+8, 2025-7-7 06:28 , Processed in 0.038699 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表