合并排序的计数比较

时间:2017-12-06 14:55:40

标签: algorithm python-3.x sorting counter

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

1 个答案:

答案 0 :(得分:1)

我可以想到两个解决方案:

  1. 不太美观,但更容易实施。
  2. 将计数器声明为全局变量。您可以使用global counter

    在功能中引用它
    1. 避免全局变量
    2. 下面:

      mergesort(lefthalf)
      mergesort(righthalf)
      

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

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

      您将获得比较计数。每次拨打mergesort()

      时,请务必将计数器初始化为0