我的代码有问题,冒泡排序无法正常工作。
numero = raw_input('Ingrese los numeros a ordenar:')
numeros = []
while numero != '': #hit enter to finish the number input
numeros.append(numero)
numero = raw_input()
def burbuja(temporal):
tamanio = len(temporal) -1
ordenado = False
while not ordenado:
ordenado = True
for i in range(tamanio):
if temporal[i] > temporal[i+1]:
ordenado = False
temporal[i], temporal[i+1] = temporal[i+1], temporal[i]
burbuja(numeros)
print 'Los numeros ordenados son:', numeros
问题在于我插入这样的数字
'22', '13, '2', '4'
我的预期结果是
'2', '4', '13', '22'
但我明白了:
'13', '2' ,'22', '4'
我希望你能帮助我解决我的问题
谢谢:)
答案 0 :(得分:0)
您只需将数字与下一个数字进行比较。在您的示例中,您只需将“22”与其下一个数字('13')进行比较,而不是将所有其他数字('13','2','4')进行比较。所以你只需用'13'交换'22'。
答案 1 :(得分:0)
您可以使用此代码:
def bubble(L):
length = len(L)
while length > 0:
for i in range(length - 1):
if L[i] > L[i+1]:
L[i], L[i+1] = L[i+1], L[i]
length -= 1
return L