線形時間での圧縮/エンコードについて


8

私はNJ Larsson、A. Moffat:Offline Dictionary-Based Compressionの論文を読んでいます。これは、私が正しく理解していれば、バイトペアエンコーディングに非常に似ている圧縮アルゴリズムについて説明しています

長さnの文字列が与えられた場合、この圧縮方法を使用して線形On 時間で圧縮する方法を理解しようとしています。これはどのように正確に行われますか?私はこの論文を読みましたが、どのようにして線形時間を達成するのかまだ理解していません。そのため、別の方法で説明されているのかもしれません。SnO(n)

私の最初の混乱は、アルゴリズムの最初のステップで発生します。たとえばabcababcabc、最も一般的なペアabが新しいシンボルに置き換えられる場合などXcXXcXcです。最も一般的なペアをすばやく見つける方法がわかりません。私の素朴なアプローチは、最初のペアabを最初に見て、bc発生数を数え、次に次のペアを見て、発生数を数えるなどです。しかし、これは、最も多くを見つけるためだけにすでに与えます。共通のペア1回O(n2)

次に、時間で最も一般的なペアを見つける方法を理解したとしても。私の次の問題は、On 回までの最も一般的なペアを見つける必要がないかということです。したがって、これはOn 2)の合計時間を与えますか?O(n)O(n)O(n2)


より具体的な質問をする必要があります。別の言葉で論文を繰り返すことは、このサイトにとっては広いようです。論文のどこで著者はあなたを失いますか?
adrianN

@adrianN私が特に困惑していることについてもう少し書きました。
2016

O(n)O(n)O(n2)

SΘ(n)O(nlogn)Θ(n)

O(n)O(nlogn)O(nlogn)Θ(n)

回答:


1

O(n)
O(nlogn)O(n)

ペーパーとコードは、予想される一定の時間でのみ実行されるハッシュテーブルの使用法を示していますが、指定された関数は文字で非常にうまく機能します。また、コードは、ハードコードされた定数によって入力長を制限します。

O(n)

nn2n4n8n162nO(nlogn+n)

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.