概述
自己照着书本依葫芦画瓢的,有不对的话请多指正
冒泡法如果有n个元素,则需要执行n-1次扫描
第一次扫描需要进行n-1次比较
假设有5个元素,则共进行 4+3+2+1 = 10 次比较
#-*-coding:GBK-*
num = 0
data = []
while num != -1:
num = int(input('Please enter a num:n'))
data.append(num)
data.pop()
print('the original data is ')
for i in range(len(data)):
print('%d' %data[i], end = ' ')
print()
for i in range(len(data)-1, 0, -1):
for j in range(i):
if data[j] > data[j + 1]: #两个数字进行比较,如果前者大于后者则进行交换
data[j], data[j+1] = data[j+1], data[j]
print('第 %d 次扫描结果' %(len(data) - i))
for k in range(len(data)):
print(data[k], end = ' ')
print()
print('最终结果')
for m in range(len(data)):
print(data[m], end = ' ')
最坏的情况和平均情况需要比较n(n-1) / 2次
如果在某次排序中没有执行交换操作,可以视为排序最终已经完成
#-*-coding:GBK-*
num = 0
data = []
while num != -1:
num = int(input('Please enter a num:n'))
data.append(num)
data.pop()
print('the original data is ')
for i in range(len(data)):
print('%d' %data[i], end = ' ')
print()
def bubble(data):
for i in range(len(data)-1, 0, -1):
flag = 0
for j in range(i):
if data[j] > data[j + 1]:
data[j], data[j+1] = data[j+1], data[j]
flag += 1
if flag == 0:
break
print('第 %d 次扫描结果' %(len(data) - i))
for k in range(len(data)):
print(data[k], end = ' ')
print()
bubble(data)
print('最终结果')
for m in range(len(data)):
print(data[m], end = ' ')
最后
以上就是标致豆芽为你收集整理的用python实现冒泡法排序(数字升序)的全部内容,希望文章能够帮你解决用python实现冒泡法排序(数字升序)所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复