【发布时间】:2017-12-06 14:55:39
【问题描述】:
我正在尝试计算合并排序算法在对列表进行排序时进行的比较次数。我尝试了多种方法,但由于递归,我总是得到一个基本上是列表大小的答案。关于如何计算比较次数的任何建议?
【问题讨论】:
标签: algorithm python-3.x sorting counter
我正在尝试计算合并排序算法在对列表进行排序时进行的比较次数。我尝试了多种方法,但由于递归,我总是得到一个基本上是列表大小的答案。关于如何计算比较次数的任何建议?
【问题讨论】:
标签: algorithm python-3.x sorting counter
我能想到两种解决方案:
将计数器声明为全局变量。您可以使用global counter 在您的函数中引用它。
这里:
mergesort(lefthalf)
mergesort(righthalf)
您没有使用返回的比较计数器。如果你做了类似的事情:
count += mergesort(lefthalf)
count += mergesort(righthalf)
您将获得比较计数。记得每次调用mergesort()时都用0初始化你的计数器
【讨论】: