ホームページ >バックエンド開発 >PHPチュートリアル >配列が与えられた場合、サイズ 3 の逆ペアの数を数える PHP プログラムを作成します。
逆方向カウントは、特定の配列に対して実行されたソート ステップの数をカウントできるステップ カウント方法です。アレイの動作時間を計算することもできます。しかし、配列を逆の方法で並べ替える場合、カウントは配列内に存在する最大数になります。
リーリー反転カウントは、特定の配列が昇順でのソートからどれだけ離れているかを示します。この状況と解決策を説明する 2 つの具体的な手順を次に示します -
より小さい要素を見つけるには - 配列からより小さい要素を見つけるには、インデックスを n-1 から 0 まで繰り返す必要があります。 (a[i]-1) を適用することで、ここで getSum() を計算できます。プロセスは a[i]-1 に達するまで実行されます。
より大きな数値を見つけるには - インデックスからより大きな数値を見つけるには、0 から n-1 までの反復を実行する必要があります。各要素について、a[i] までの各数値を計算する必要があります。 iからそれを引きます。次に、a[i] より大きい数を取得します。
このアルゴリズムでは、特定のプログラミング環境で指定された配列のサイズ 3 の反転を計算する方法を学びます。
ステップ 1 - 始めましょう
ステップ 2 - 配列を宣言し、カウントを反転します (arr[] --> 配列と invCount --> カウントを反転するなど)
ステップ 3 - 内部ループ y=x 1 から N
ステップ 4 - x の要素が y の要素より大きい場合インデックス
ステップ 5 - 次に、invCount を増やします
ステップ 6 - ペアを印刷します
ステップ 7 - 終了
次の条件が満たされる場合、ペア (A[i], A[j]) は反転状態にあると言われます: A[i] > A[j] および i
C実装
リーリーJava 実装
リーリーPython の実装
リーリーPHP実装
リーリーここでは、指定された配列のサイズ 3 の反転を計算するための可能な構文について説明しました。この方法の場合、時間計算量: O(N^2) (N は配列の合計サイズ)、空間計算量: O(1) (余分なスペースが使用されないため)。
方法 1 - 指定された配列内のサイズ 3 の反転をプログラムで計算し、サイズ 3 の反転を計算します
方法 2 - サイズ 3 の反転を計算するより良い方法
方法 3 - バイナリ インデックス ツリーを使用してサイズ 3 の反転を計算します
サイズ 3 の反転を計算する簡単な方法では、i、j、k のすべての可能な値に対してループを実行する必要があります。時間計算量は O(n^3) で、O(1) は補助空間を反映します。
要件は次のとおりです:
a[i] > a[j] > a[k] および i
例 2
リーリー ###出力### リーリーこの記事では、指定された配列のサイズ 3 の反転を計算する方法を説明します。この記事と、特定の言語を使用した言及されたコードを通じて、この主題について幅広い理解が得られたことを願っています。
以上が配列が与えられた場合、サイズ 3 の逆ペアの数を数える PHP プログラムを作成します。の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。