【问题标题】:Count Comparisons for Merge Sort合并排序的计数比较
【发布时间】:2017-12-06 14:55:39
【问题描述】:

我正在尝试计算合并排序算法在对列表进行排序时进行的比较次数。我尝试了多种方法,但由于递归,我总是得到一个基本上是列表大小的答案。关于如何计算比较次数的任何建议?

【问题讨论】:

    标签: algorithm python-3.x sorting counter


    【解决方案1】:

    我能想到两种解决方案:

    1. 不太美观,但更容易实现。

    将计数器声明为全局变量。您可以使用global counter 在您的函数中引用它。

    1. 避免使用全局变量

    这里:

    mergesort(lefthalf)
    mergesort(righthalf)
    

    您没有使用返回的比较计数器。如果你做了类似的事情:

    count += mergesort(lefthalf)
    count += mergesort(righthalf)
    

    您将获得比较计数。记得每次调用mergesort()时都用0初始化你的计数器

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-19
      • 2015-07-09
      • 2018-05-30
      • 2015-06-30
      • 2016-10-02
      • 1970-01-01
      • 2013-04-30
      • 1970-01-01
      相关资源
      最近更新 更多