我通过Python进行了mergesort并且它正常工作。我需要在这个合并排序运行时计算比较。我宣布全局变量' merge_compare_count'因为这是递归函数。我使用随机数作为列表A的元素。
但问题是每当我运行此代码时,我总是得到merge_compare_count。我不知道为什么......
例如,当A得到5000个随机不同的元素但merge_compare_count总是与123616返回相同。
任何帮助都会欣赏!!
答案 0 :(得分:2)
这不是问题。它的编写方式,您的代码只具有确定数量的步骤,这取决于大小,而不是值。您甚至可以像这样计算它们:
>>> def f(n):
return 0 if n < 2 else f(n/2) + f(n-n/2) + 2*n
>>> f(5000)
123616