首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python-3中的MergeSort问题

Python-3中的MergeSort问题
EN

Stack Overflow用户
提问于 2017-10-24 03:19:58
回答 1查看 112关注 0票数 1

我对Python-3.x中的MergeSort有一个问题。这就是算法不做排序。我的错误是什么?你能帮帮我吗?

守则是:

代码语言:javascript
复制
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)

结果是:

代码语言:javascript
复制
[6, 7, -1, 0, 5, 2, 3, 8]
[Finished in 0.2s]

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-24 03:29:58

print(mergeSort(L))怎么样?它给了我[-1, 0, 2, 3, 5, 6, 7, 8]

下面的代码的问题是L甚至没有被修改。返回值 of mergeSort(L) (想必)给出了排序列表。

代码语言:javascript
复制
L = [6,7,-1,0,5,2,3,8]
mergeSort(L)
print(L)
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46901669

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档