反転ペアのカウント


14

分割統治の古典的な用途は、次の問題を解決することです。

アレイ所与対:異なる、同等の要素をアレイ状に反転ペアの数をカウントし、ようにと。i j a [ i ] > a [ j ] i < ja[1n](i,j)a[i]>a[j]i<j

これに対する1つのアプローチは、マージソートを実行することですが、副問題の反転ペアの数もカウントします。マージステップ中に、2つのサブ問題にまたがる反転ペアの数をカウントし、サブ問題のカウントに追加します。

これは良いですが、時間アルゴリズムを提供しますが、これは配列を台無しにします。O(nlogn)

我々は追加の制約がある場合は、アレイは、読み取り専用であることを、我々はコピーでコピーして取引をする、またはカウントを行うために、バイナリツリーをバランス順序統計のような追加のデータ構造を使用し、どちらも使用することができますスペース。Θ(n)

現在の問題は、実行時間に影響を与えずに、スペースを改善することです。すなわち

反転ペアの数をカウントする時間アルゴリズムはありますか。これは読み取り専用配列で機能し、サブリニア(つまり)スペースを使用しますか?o n O(nlogn)o(n)

均一コストのRAMモデルを想定し、要素はスペースを使用し、それらの間の比較はと仮定します。O 1 O(1)O(1)

参照はできますが、説明の方が良いでしょう:-)

ウェブを検索しようとしましたが、これに対する肯定的/否定的な答えが見つかりませんでした。これは単なる好奇心だと思います。


3
ChanとPătraşcuは時間アルゴリズムを提供しますが、私が論文をざっと読んでわかる限りでは、スペースが必要です。Ω n o(nlogn)Ω(n)
ラファエル

2
さらに、Ajtai et al。(正確な)時間ストリーミングアルゴリズムがスペースを必要とすることを証明します。ただし、条件に合った近似値があるようです。Ω n O(n)Ω(n)
ラファエル

1
@ラファエル:ありがとう!回答がない場合は、これまでのコメントがベストアンサーになります。
アリヤバタ

ところで、Ajtaiらの下限については少し混乱しています。定理8「は、任意のアルゴリズム」と言いますが、下の私にバインドされた単一パスの正確なストリーミングアルゴリズムに対してのようです、非常に制限されたモデル
Sashoニコロフ

@SashoNikolov:彼らはモデルをストリーミングアルゴリズムにグローバルに設定していると思うので、 "any"はそれらに制限されます。私の帰結-正確な時間アルゴリズム-が正しいこと、つまり、線形時間アルゴリズムは常に多くのパスを持つストリーミングアルゴリズムとして表現できることを願っています。表示されます。O(n)
ラファエル

回答:


3

ラファエルの答えは次のとおりです。

ChanとPătraşcuは時間アルゴリズムを提供しますが、紙をざっと読んでわかる限り、スペースが必要です。さらに、Ajtai et al。(正確な)時間ストリーミングアルゴリズムがスペースを必要とすることを証明します。ただし、条件に合った近似値があるようです。Ω n O n Ω n o(nlogn)Ω(n)O(n)Ω(n)


それを答えてくれてありがとう。しかし、もう少し時間を与えます。トラフィックは増加しているようです。
アルヤバタ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.