Python3中MergeSort的问题

2024-09-28 17:25:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我对Python-3.x中的MergeSort有一个问题,那就是该算法没有进行排序。我犯了什么错?你能帮助我吗?你知道吗

代码是:

def mergeSort(lista): #Precondición: elem comparables #Postcondición: lista ordenada if len(lista) < 2: return lista medio = len(lista) // 2 izq = mergeSort(lista[:medio]) der = mergeSort(lista[medio:]) return merge(izq,der) def merge(lista1,lista2): #Precondición: listas ordenadas #Postcondición: retorna lista con elem de lista1 y lista2 i,j = 0,0 resultado = [] while i<len(lista1) and j<len(lista2): if (lista1[i] < lista2[j]): resultado.append(lista1[i]) i += 1 else: resultado.append(lista2[j]) j += 1 resultado += lista1[i:] resultado += lista2[j:] return resultado L = [6,7,-1,0,5,2,3,8] mergeSort(L) print(L)

结果是:

[6, 7, -1, 0, 5, 2, 3, 8] [Finished in 0.2s]

Tags: lenreturnifdefderlistaelemlista1