एक ही तरीका है दोनों को लागू करने और जाँच, लेकिन मेरे सूचित अनुमान है कि शब्दकोश में तेजी है, क्योंकि एक द्विआधारी खोज वृक्ष देखने के लिए लागत हे (लॉग (एन)) है हो जाएगा करने के लिए किया जाएगा सुनिश्चित करने के लिए और सम्मिलन, और मुझे लगता है कि परिस्थितियों के सबसे निराशाजनक (जैसे विशाल हैश टकराव) को छोड़कर हैश टेबल का ओ (1) लुकअप कभी-कभी आकार बदल जाएगा।
आप Python dictionary implementation पर एक नज़र डालें, तो आप उस देखेंगे:
- एक शब्दकोश 8 प्रविष्टियों (
PyDict_MINSIZE
) के साथ बाहर शुरू होता है;
- 50,000 या उससे कम प्रविष्टियों वाला एक शब्दकोश जब यह बढ़ता है तो आकार में चौगुनी हो जाती है;
- 50,000 से अधिक प्रविष्टियों वाला एक शब्दकोश जब यह बढ़ता है तो आकार में युगल होता है;
- कुंजी हैश शब्दकोश में कैश किए जाते हैं, इसलिए शब्दकोश का आकार बदलते समय उन्हें पुनः संयोजित नहीं किया जाता है।
("NOTES ON OPTIMIZING DICTIONARIES" भी पढ़ने लायक हैं।)
इसलिए यदि आपके शब्दकोश 1,000,000 प्रविष्टियां हैं, तो मुझे विश्वास है कि यह ग्यारह गुना (8 → 32 → 128 → 512 → 2048 → 8192 बदल दिया जाएगा → 32768 → 131072 → 262144 → 524288 → 1048576 → 20 9 7152) आकार के दौरान 2,009,768 अतिरिक्त सम्मिलन की लागत पर। यह एक एवीएल पेड़ में 1,000,000 प्रविष्टियों में शामिल सभी पुनर्वसन की लागत से काफी कम होने की संभावना है।
स्रोत
2010-11-25 17:32:14
नोट है विचार करने के लिए। ट्री और स्प्ले पेड़ वसंत के लिए वसंत। –
शायद आप गिनती ब्लूम फ़िल्टर का भी उपयोग कर सकते हैं। –
'संग्रह से Counter' –