2017-10-22 4 views
0

私は単純な文字列からintへのマッピングを持っています。ハッシュやその他の効率的なアルゴリズムを使用してintをルックアップするにはどうすればよいですか?ハッシュを使用しているCでのintによるルックアップテーブル

struct string_int_map { 
    char *str; 
    int val; 
}; 


struct string_int_map s_to_i_map[] { 
    { "test1", 45 }, 
    { "test2", 95 }, 
    { "test3", 83 }, 
    { "test4", 67 }, 
}; 

ソル:

の配列をソートした後、バイナリサーチを行います。ヘルプの人々に感謝します。

+1

この特定のコードの目的は何ですか?実際には、通常、単純な高速ハッシュ関数を作成します。その中には、実装や速度の難しさの点で異なる教科書に多数のものがあり、それを標準問題のハッシュテーブル、通常は単一リンクエントリ。 – tadman

+0

'struct'配列が' val'によってソートされている場合、 'val'のバイナリ検索は高速です。 –

+0

速度は最高ですが、メモリを犠牲にして配列を使用し、ハッシュ値をインデックスにします。それはそれより速くはなりません。 – klutt

答えて

0

アレイをソートしてバイナリ検索を実行します。参考にしてくれてありがとう@ウェザー。

関連する問題