嗨,我用冒泡排序查看了其他帖子,但解决方案在我的例子中不起作用:所以算法在我循环时重复了几次之后才起作用。但我如何在不使用输入的情况下做到这一点?这是我的代码,你知道我的意思:
x = [0, 0, 1, 3, 3, 2, 2, 1, 0, 4, 5]
h = None
flag = True
while flag == True:
#flag = True
for i in range(len(x) - 1):
if x[i] > x[i + 1]:
# flag = False
h = x[i]
x[i] = x[i + 1]
x[i + 1] = h
print(x)
#input = raw_input('Satisfied? ')
#if input == 'q':
# break
print(x)
'''
we can replace variable h, with:
x[i] , x[i+1] = x[i+1], x[i]
'''
我为您的代码进行了一些重构:
for num in range(len(mylist)-1, 0, -1):
for i in range(num):
if mylist[i] > mylist[i+1]:
mylist[i], mylist[i+1] = mylist[i+1], mylist[i]
使用该算法,您可以预先知道排序整个数组需要多少步(最大),因为该算法是收敛的和有界的。在每个通道中,最高的未放置值被正确放置,因此您需要n-1个通道来完成排序。
这里有一个例子:
mylist = [54,26,93,17,77,31,44,55,20]
for num in range(len(mylist)-1, 0, -1):
for i in range(num):
if mylist[i] > mylist[i+1]:
aux = mylist[i]
mylist[i] = mylist[i+1]
mylist[i+1] = aux
print(mylist)
希望能有帮助
PS:当列表在n-1过程之前排序时停止,最好使用“插入算法”。这里有一个插入排序和冒泡排序之间的有趣比较:插入排序和冒泡排序算法
您可以使用python中的sorted
函数,将代码更改为:
while flag == True:
for i in range(len(x) - 1):
if x[i] > x[i + 1]:
h = x[i]
x[i] = x[i + 1]
x[i + 1] = h
if sorted(x) == x: #x is already sorted
flag = False
编辑:不使用python内置排序函数的替代解决方案:
while flag == True:
flag = False
for i in range(len(x) - 1):
if x[i] > x[i + 1]:
flag = True
h = x[i]
x[i] = x[i + 1]
x[i + 1] = h
希望我帮了忙!
我需要使用气泡排序法按名称对我的杂货库存进行排序。 显然,我的代码不是按名字排序的 顺便说一句,库存存储的数据来自文件输入。 这是我的代码。 这是我的比较方法从我的超类(杂货店项目)
本文向大家介绍气泡排序在Go Lang,包括了气泡排序在Go Lang的使用技巧和注意事项,需要的朋友参考一下 冒泡排序是一种排序算法,它通过交换顺序错误的元素来工作。在多次遍历中,它检查相邻元素的顺序是否正确(递增)。 冒泡排序的时间复杂度为O(n ^ 2),因为它需要两个嵌套循环才能检查相邻元素。 例如,让我们看下面的未排序数组- 冒泡排序算法首先遍历整个数组,然后在另一个循环中检查相邻元素是
所以我的代码有问题。我必须编写一个程序来对一个外部文本文件进行排序(基本上是一个按随机顺序排列的随机数列表)。所以我试着按照教授的步骤去做,即使我做了,我也没有得到正确的输出。输出应该如下所示: 1 2 2 2 3 3 5 5 6 6 11 13 13 13 13 16 17 17 19 25 27 27 33 34 37 37 43 45 49 51 52 54 57 58 60 63 64 6
我是Java新手,所以一直在尝试将一些旧的JS练习翻译成Java。
定义 气泡组件。 图片展示 代码演示 import Popover from 'pile/dist/components/popover' const {Tooltip} = Popover <Tooltip overlay={"说明文字"} placement='left' isShow={popleftshow} idName='newIndex' setTooltipC
本文向大家介绍冒泡排序 (python版)相关面试题,主要包含被问及冒泡排序 (python版)时的应答技巧和注意事项,需要的朋友参考一下 参考回答: