現時点では、私の関数は 3 つの数値の中央値を見つけて並べ替えますが、常に 3 つの比較を行います。ネストされた if ステートメントをどこかで使用して、関数が 2 つの比較のみを行うことがあると考えています。
int median_of_3(int list[], int p, int r)
{
int median = (p + r) / 2;
if(list[p] > list[r])
exchange(list, p, r);
if(list[p] > list[median])
exchange(list, p, median);
if(list[r] > list[median])
exchange(list, r, median);
comparisons+=3; // 3 comparisons for each call to median_of_3
return list[r];
}
ネストされた if ステートメントをどこで作成できるかわかりません。