を使用して、配列内の最大を見つけることは、私は次の宣言があるとします。再帰
int arr[5] = {1,10,9,28,3};
int low = 0;
int high = 4;
int largest = findLargest(ar, low, high);
私は再帰を使用して「findLargest」関数を記述すると仮定し、これは私が
int findLargest(int arr[], int low, int high)
{
if (low == high)
return arr[low];
return max(arr[low], findLargest(arr, low+1, high));
}
を得たものであるのです出力は28
であり、これは予想されたものです。しかし、私はこの再帰関数がどのように値を "比較"するのか、実際には分かりません。 (つまり、>
、<
などの演算子は表示されません。表示される唯一の演算子は==
です)。だから、この再帰関数はどのように配列の値を比較しますか?
'std :: max'が比較を行います。 – tkausl
要素が1つしかない配列でこの関数を呼び出すとどうなるかを考えてみましょう。シンプル、そう?次に、2つの要素を持つ配列で呼び出すとどうなるか考えてみましょう。その後、3つ、4つなど –