选择排序数组比较

时间:2012-07-29 21:14:58

标签: arrays function sorting select

Stack Overflow的用户,

我试图找出如何计算在一个方法中发生了多少数组比较。 arrayMaxPos函数进行n-1次比较,以找到大小为n的数组中的最大元素。

我只是想要了解这一点。

public static void SelectSort(int [] a, int n)
  {
    for (int i = n; i> 1; i--)
    {
      int maxPos = arrayMaxPos(a, i);
      swop(a, maxPos, i-1);
    }
  }

非常感谢。

3 个答案:

答案 0 :(得分:0)

我认为这将是((N-1)^ 2)/ 2比较。

答案 1 :(得分:0)

你可以通过调试代码或简单地将print语句放在下面来分析你自己的代码。 并为你的答案 - 选择排序 n(n - 1)/ 2 来排序数组

答案 2 :(得分:0)

你的外循环正在进行n-1次迭代。 你的内部循环(arrayMaxPos(...))从n到1,因此是n / 2。

正如其他一些答案已经解释过: n(n-1)/ 2