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);
}
}
非常感谢。
答案 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