5

配列を引数として取り、その最大値を返すアルゴリズムがあります。

find_max(as) :=
    max = as[0]
    for i = 1 ... len(as) {
        if max < as[i] then max = as[i]
   }
    return max

max私の質問は、配列が最初は (一様に) ランダムな順列であり、そのすべての要素が異なる場合、変数が更新されると予想される回数は何回ですか (最初の割り当てを無視します)。

たとえば、 の場合as = [1, 3, 2]、 への更新回数はmax1 になります (値 3 を読み取る場合)。

4

3 に答える 3