Iは次のように、DNA配列の配列を有する:ハミング距離で区切られた文字列のすべての対(DNA)を取得= 1
AA
TA
AC
CC
とIすべてのシーケンスペアの間のハミング距離を計算するためのより速い方法の検索(おそらく並べ替えによる)、次に素朴なアプローチ(O(N^2))
私はあなたのn >> kの場合はハミング距離= 1
Iは次のように、DNA配列の配列を有する:ハミング距離で区切られた文字列のすべての対(DNA)を取得= 1
AA
TA
AC
CC
とIすべてのシーケンスペアの間のハミング距離を計算するためのより速い方法の検索(おそらく並べ替えによる)、次に素朴なアプローチ(O(N^2))
私はあなたのn >> kの場合はハミング距離= 1
を持っているペアのシーケンスを必要とし、その後は
あなたのオリジナルの複雑さは、kはO(nはN k)は、であるが、以下試すことができますシーケンスの長さ(ハミング距離の比較にはkステップが必要)。それを改善しようとしましょう。
を(あなたは、n個の文字列ごとに)k個のバリエーションのそれぞれをO(kはハッシュする必要があるため)複雑性O(nはK K)yesの場合、あなたは、ペアを発見しましたO(n n k)をO(n k k)に置き換えました。 n >> kならば有益でなければならない。
k >> nの場合、おそらくn^2の部分は気にしないので、簡単なアルゴリズムを使用します。
nは近くのkについて、あなたは*(nは0,1,2,3(複雑性Oですべての文字を加算することにより、私は、各シーケンスのための疑似ハッシュを作成します
この距離はどれくらいですか? –
N(N-1)/ 2の距離を計算します。どのようにO(N^2)より優れているのでしょうか?結果を報告するのはO(N^2)です。 –
は、グラフェンを構成します。ここでエッジはハミング距離を表します。例えば、この配列の場合:TA-AA-AC-CA .... – Chadi