2016-06-13 7 views
0

マトリックスベースのアルゴリズムでは、どのようなデータ構造が適しているのかよく分かりません。マトリックスベースの問題を扱うデータ構造

「マトリックスベースのアルゴリズム」とは、Needleman-Wunsh alignmentのようなアルゴリズムを意味します。行列で視覚的に表現される多くのアルゴリズムがあります。

私が選ぶべきだろうか

:配列

  • リンクされたリストのリンクリストのキーは(行、列)
  • などのようなタプルである
  • ハッシュテーブルの

    • アレイ

    この難局に直面するときに何を考慮する必要がありますか?

    Obs:私の質問は「言語を開く」です。あなたはあなたの答えに任意のプログラミング言語を使うことができます。

  • 答えて

    1

    使用するデータ構造は、使用するアルゴリズムとその行列へのアクセス方法によって異なります。たとえば、サイズが固定されていて高速アクセスが必要な場合は、2次元配列を使用する方がよいでしょう。なぜなら、何を使用していても、そのスペースを割り当てなければならないからです。行列のサイズが動的に決定される場合、おそらくベクトルのベクトル(または言語に応じて同様のデータ構造)が使用されます。 もう1つの質問は、行列が疎で非常に大きい(デジタルジオメトリアルゴリズムのような)場合で、その行列の算術演算を非常に頻繁に行う必要がある場合です。次に、トリプル形式のデータ構造3つのベクトルを使用します。あなたはこのリンクでもっと読むことができますhttps://de.wikipedia.org/wiki/Compressed_Row_Storage 希望すると助かります