タグ

hashに関するIMAKADOのブックマーク (5)

  • 検索と挿入がともにO(1)であるようなHashを作るにはコツがいる

    このところ立て続けに表記の事実を理解していない俺実装のHash(しかもCで!)を見かけたので、おそらく知られていないんだと思う。以降、同じ轍を踏む人が少なくなればと思い、啓蒙のために公開しておく。 先に言っておくがおまえらはHashを再発明するんじゃねよボケが。おとなしくありもののライブラリ使えよ。つうかHashのある言語使えよ。Cとかマゾかよ。 言葉と前提とりあえずHashが何であるかとか、どういう作りになっているかとか、そういうことは既知とする。リストの配列ってことね。←これで何言ってるか分からないおまえらにはこの文章はちょっとはやい。先にデータ構造の教科書を読むことをおすすめ。以下ではHashに登録されるキーとデータのペアのことをentryと呼び、リストの配列と言ったときのリストのほうをbin、配列のほうをbucketと呼ぶ。つまり、 class Hash { typedef lis

    検索と挿入がともにO(1)であるようなHashを作るにはコツがいる
  • perl - $scalar = %hash; # で$scalarはどうなる? : 404 Blog Not Found

    2008年05月04日02:00 カテゴリLightweight Languages perl - $scalar = %hash; # で$scalarはどうなる? たしかにこれには面らうが、一応それなりの意味がある。 jijixi's diary - perlsh より pirl の方が高機能とか書いたが嘘だった , .perlshrc 改訂版 (修正済) , Perl 初心者日記 , our/my/local は package.. main[145]$ $scalar = %hash "1/8" この挙動↑ がわけわからん。 普通に考えたら "foo" とかが入りそうだがなー。 何が起こっているかのヒントを探すべく、以下のようなscriptを実行してみることにしよう。 my %hash; for my $i (0..100){ my $scalar = %hash; print

    perl - $scalar = %hash; # で$scalarはどうなる? : 404 Blog Not Found
  • すっかり忘れてたPerlのHASHとサブルーチンの関係 - Yappo::タワシ

    こんなの use strict; use warnings; use Data::Dumper; sub nreturn { return } sub undefreturn { return undef } sub nop {} print Dumper({ a => nreturn, b => nreturn, }); print Dumper({ a => undefreturn, b => undefreturn, }); print Dumper({ a => nop, b => nop, }); 答え $VAR1 = { 'a' => 'b' }; $VAR1 = { 'a' => undef, 'b' => undef }; $VAR1 = { 'a' => 'b' };

  • ruby のハッシュで使われている st_hash とは - IT戦記

    ここを見て hash関数 - 初学者の箸置 Ruby で使われている st.c ってなんなんだろうと思って調べてみた いろいろ使われてる ちょっとググったら、いろいろと使われているみたいですね Ruby Syck Oniguruma CPAN の File::MMagic::XS モジュール ライセンス ライセンスがパブリックドメインなので、何も考えないで使えて良さそう。 よくわかる解説がありました 第3章 名前と名前表

    ruby のハッシュで使われている st_hash とは - IT戦記
  • プログラミング・メモ - ハッシュ関数性能評価選手権

    えー……,やってまいりました。第255回ハッシュ関数性能評価選手権(ウソ)。決められたテーブルサイズに対して,いかに効率の良いハッシュ値を算出することができるのかを競うこの大会。今回もあちこちのソースコードから,選りすぐりのハッシュ関数を取り揃えてまいりました。今回は選手のご紹介をば。なお,ソースコードは一部インデントを編集している場合があります。 まずは,Gnome 代表,libxml2 さんのハッシュから。 /* * xmlHashComputeKey: * Calculate the hash key */ static unsigned long xmlHashComputeKey(xmlHashTablePtr table, const xmlChar *name, const xmlChar *name2, const xmlChar *name3) { unsigned lo

  • 1