2017-07-05 13 views
0

私はバッチで配列を作成する方法を見ていましたが、その方法の1つが構造のような連想配列を可能にすることに気付いていました。私には不思議に思えましたが、変数の束は同じアクセス時間を与え、辞書と同じように実行しますが、ハッシングはありませんか?例えば、変数のグループ対辞書

をします:

a=1 
b=2 
c=3 
d=4 
e=5 

は同じ値を持つ辞書として同じ検索時間がありますか?ただし、変数の格納場所を決定するためにハッシュ関数を使用しなければならないという問題を回避する変数群はありませんか?これは言語とそれが変数やオブジェクトをどのように取り扱うかに依存しますか?

ので、より明確にしようとすると、さて、あなたは以下のコードを持っていると言う:

a = 1 
b = 2 
c = 3 
d = 4 
e = 5 
f = 6 
g = 7 
h = 8 

dictionary = { 
    "a":1, 
    "b":2, 
    "c":3, 
    "d":4, 
    "e":5, 
    "f":6, 
    "g":7, 
    "h":8 
} 

print a + b 
print dictionary["a"] + dictionary["b"] 

辞書オブジェクトが格納された変数の場所を決定するためにハッシュ関数を使用する必要が作ります。また、これらの変数にアクセスするためにルックアップ時間が必要になります。したがって、辞書を保存するのに8つの変数と比較して余裕がなく、より多くのストレージを使用するのではないでしょうか?別の関連する質問:変数の格納場所自体がハッシュを使用するのですか?

+0

あなたの質問はほとんど意味がありません。あなたが比較したいものの具体的なコード例を挙げてください。 – Hogan

答えて

0

ハッシュディクショナリのルックアップ時間は、ストレート変数ルックアップよりも長くなっています。

しかし、それらはまだかなり速いであり、動的に構造化されたオブジェクトに対して最も歓迎されています。

バッチスクリプトの場合、これは問題ではありません。両方とも他の言語と比べてかなり遅いです。

関連する問題