我正在尝试实现Python合并排序,但在某些方面失败了。我得到的伪代码是准确的,但看起来像是为不同的语言构建的。伪代码需要满足以下条件我不确定这在Python中是如何实现的。无论如何,代码如下。整个想法是,我需要对数组/列表进行排序,并返回排序后的数组/列表。/mergesort", line 10, in mergesort File
Python中的递归函数是否在函数每次调用自身时都创建一个新的命名空间?我读了一些关于mergesort的文章,并看到了这个教程: print("Splitting ",alist)
if len(alist)>1我可以遵循代码,但我不太理解将左撇子用作传递到mergeSort递归函数调用中的参数。我明白了,当mergeSort第一次被称为在底部的时候,会被切成54,26,93,17和17,77,31,44,55,20。
我尝试使用mergesort--我得到的--来计算列表中拆分反转的数量(即,未排序列表的前半部分中的元素应该出现在未排序列表的后半部分中的给定元素之后;例如,3 2 1 4将包含拆分反转(3,1),但不包含(使用Python 2.7) '''Recursively divides list in halves to be sorted''