我正在尝试计算合并排序算法在对列表进行排序时进行的比较次数。我尝试了多种方法,但由于递归,我总是返回一个基本上是列表大小的答案。关于如何计算比较次数的任何建议?
我可以想到两种解决方案:
将计数器声明为全局变量。您可以在您的函数中使用global counter
.
这里:
mergesort(lefthalf)
mergesort(righthalf)
您不使用返回的比较计数器。如果你做这样的事情:
count += mergesort(lefthalf)
count += mergesort(righthalf)
您将获得比较计数。记住每次调用时用 0 初始化计数器mergesort()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句