python3实现冒泡排序(Ubuntu18环境)

2025-04-25 04:05:58

1、冒泡是惘度谋裆常用的排序方法。实现方法:1:相邻的两个元素进行比较,然后把较大的元素放到后面;2:一趟比较完后最大的元素位于了最后一个位置,如此循环。冒泡罪拈藉麝算法要遍历n-1趟,时间复杂度较高。例如输入值序列[3, 5, 1, 8, 10]第一趟:[3, 5, 1, 8, 10][3, 1, 5, 8, 10][3, 1, 5, 8, 10][3, 1, 5, 8, 10]第二趟:[1, 3, 5, 8, 10][1, 3, 5, 8, 10][1, 3, 5, 8, 10]第三趟:[1, 3, 5, 8, 10][1, 3, 5, 8, 10]第四趟:[1, 3, 5, 8, 10](其实第二趟就已经排序完毕,因此可以优化)

python3实现冒泡排序(Ubuntu18环境)

2、具体实现:#!/usr/bin/env python#-*- coding: utf-8 -*-#冒泡排序import osimport randomdef bubSort(mbub): length = len(mbub) print("元素数量%d" % (length)) for i in range(length - 1): print("第%d趟开始" % (i)) for j in range(length - i - 1): # j表示每趟比较的元素范围,每趟排好一个元素,下一趟元素要减去i print(" 当前元素坐标={} ".format(j), end="") print(mbub, end="") print("==> ", end="") if mbub[j] > mbub[j + 1]: mbub[j], mbub[j + 1] = mbub[j + 1], mbub[j] print(mbub, end="") print(" (交换元素坐标:%d %d 交换元素数值:%d %d)" % (j, j + 1, mbub[j], mbub[j + 1])) else: print(mbub, end="") print(" (未交换)") print("第%d趟 输出:" % (i), end="") print(mbub)#调用程序if __name__ == '__main__': # 定义随机数 num = 5 #生成随机列表 current_Num = [random.randint(1,num) for i in range(num)] # current_Num = [3,5,1,8,10] print("初始列表:") print(current_Num) bubSort(current_Num)

python3实现冒泡排序(Ubuntu18环境)
python3实现冒泡排序(Ubuntu18环境)

3、运行后结果如下:第一趟: n-1比对

python3实现冒泡排序(Ubuntu18环境)

4、第二趟:n-2比对

python3实现冒泡排序(Ubuntu18环境)

5、第三趟: n-3比对

python3实现冒泡排序(Ubuntu18环境)

6、第四趟;n-4比对完成n-1比对,结束并输出结果!和分析一致。

python3实现冒泡排序(Ubuntu18环境)
声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢