Python-3 中的 MergeSort 问题

Problems with MergeSort in Python-3

我在 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]

print(mergeSort(L))怎么样。它为我提供 [-1, 0, 2, 3, 5, 6, 7, 8]

以下代码的问题在于L甚至没有修改。 mergeSort(L)return 值(大概)为您提供了排序列表。

L = [6,7,-1,0,5,2,3,8]
mergeSort(L)
print(L)