2010-12-14 18 views
1

アルゴリズム上の問題を解決するかどうかを尋ねるときには、実際にはHastable、Hashset、HashMapを使い始めるのがよいでしょうか?通常、私はあなたの最初の答えとしてハッシュを出すべきではないと言っている人々を聞いてきました。アルゴリズムの効率的な書き方

では、どのようなアルゴリズムに取り掛かる必要があります:インプレース重要性を与えられたか、時間の複雑さは、私が一般化するつもりはないよ、まだいくつかの提案が参考になる最高の

であることを確認してしなければなりません。

ありがとうございました

+0

はい、階乗を計算するときにハッシュテーブルを使用しないことは間違いありません。 :) – terminus

答えて

3

あなたが望むことができる最良のものは、一般化された質問に対する一般的な答えです。

によって異なります。

多くの異なるアルゴリズムがある理由は、常に1つのアルゴリズムが最適であるとは限らないためです。そして、多くのアルゴリズムは、互いに異なる問題を解決することを目指しています。いくつかのアルゴリズムは、ハッシュテーブルについて話すことさえ意味がありません。

誰かが私にアルゴリズム上の問題を解決するよう頼まれたら、自分のアルゴリズムを設計する前に私が使用している言語に組み込まれているものを使用しようとします。理由は私が自分の時間を評価するからです。後でそのコードが十分に効率的でないことがわかったら、もっと良い方法を探すことができます。

1

私はそれが本当に状況だと思います。ランダムアクセスが優先され、高速アクセスが必要で、メモリ使用率とシーケンシャルアクセスの制約がほとんどない場合は、Hashtable(et al)が選択です。

関連する問題