电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到python3实现冒泡排序(Ubuntu18环境)的问题,如果我们遇到了python3实现冒泡排序(Ubuntu18环境)...
电脑现已成为我们工作、生活和娱乐必不可少的工具了,在使用电脑的过程中,可能会遇到python3实现冒泡排序(Ubuntu18环境)的问题,如果我们遇到了python3实现冒泡排序(Ubuntu18环境)的情况,该怎么处理怎么才能解决python3实现冒泡排序(Ubuntu18环境)带来的困扰呢,对于这样的问题其实我们只需要Ubuntu18 , pycharmpython3.6冒泡是常用的排序方法。实现方法: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, 这样就解决了这样的问题,接下来给大家带来python3实现冒泡排序(Ubuntu18环境)的详细操作步骤。
工具/原料
Ubuntu18 , pycharm
python3.6
方法/步骤
冒泡是常用的排序方法。
实现方法:
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]
(其实第二趟就已经排序完毕,因此可以优化)

具体实现:
#!/usr/bin/env python
#-*- coding: utf-8 -*-
#冒泡排序
import os
import random
def 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)


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

第二趟:n-2比对

第三趟: n-3比对

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

注意事项
Ubuntu18 + pycharm环境
python3
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。

