すべてのカテゴリ » インターネット・パソコン » 技術・プログラミング

質問

終了

ハッシュキーの作り方について教えてください。
ハッシュテーブルを作って、ファイル名の一覧からの探索を行いたいと思っています。
簡単に思いついたのはファイル名の1バイトづつを数値として足して、それをテーブル容量ぐらいで割ったあまりを
ハッシュキーにするというものです。
あまりゴリゴリとこのような下のほうをプログラミングをすることがなく、ハッシュキーというのはどのように作るのが
普通なのか知識がありません。
このような場合、高速に動作し、キーが分散する計算方法としてどのようなものがありますでしょうか?

  • 質問者:匿名
  • 質問日時:2011-01-01 19:23:47
  • 0

並び替え:

どういう言語で開発されているのか分からないのであまり明確なことは言えないのですが、
対象としているプログラミング言語のハッシュマップに類するもの(Javaを例にとればHashMap、Hashtable等)で用いられているプログラムの実装を参考にして作成されてはいかがでしょうか?

以下の記事が参考になるかもしれません
http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=9750&forum=12
http://www.ibm.com/developerworks/jp/java/library/j-jtp05273/index.html

  • 回答者:とくめい (質問から20時間後)
  • 0
この回答の満足度
  

http://www.tokumaru.org/techterm/hash.html

任意のどんなデータでもという都合の良い物はないかと。
値が重複してしまうなら重複回避の方法を加えるのも一つの方法かと。
簡単に思いつかれた方法でやってみれば良いかと。

色々見たいなら、インターネット検索が有効かと思います。

http://share.benri-tool.net/cgi-bin/bbs.php?act=s_t&thread_id=60
実際には上記の様に重複対策しないで使っていると思われる場合も。
運用上かまわないならそれもありかなと。

  • 回答者: (質問から14時間後)
  • 0
この回答の満足度
  
お礼コメント

シノニムテーブルは当然作ります。
重複するとバグになるので。
どんなデータでもではなく、何百何千件のファイル名の中から
検索したいファイルを何千、何万回と検索する場合に適したハッシュキーの
計算方法についてお伺いしたいと思っています。
ハッシュテーブルの考え方については問題ありません、
それなりに情報処理関係の資格も有しており、SEプログラマとしての実績も10年
近くになります。
お伺いしたいのはキーの作成方法についてです。

関連する質問・相談

Sooda!からのお知らせ

一覧を見る