में मेरे पास एक सी-भाषा ऐप है जहां मुझे टेबल लुकअप करने की आवश्यकता है।हैश टेबल लुकअप - सही हैश के साथ, सी
प्रविष्टियां तार हैं, सभी रनटाइम की शुरुआत में ज्ञात हैं। तालिका एक बार शुरू की जाती है, और फिर कई बार देखा जाता है। तालिका बदल सकती है, लेकिन यह मूल रूप से है जैसे ऐप शुरू होता है। मुझे लगता है कि इसका मतलब है कि मैं एक परिपूर्ण हैश का उपयोग कर सकता हूं? हैशटेबल प्रारंभिकरण के लिए कुछ समय का उपभोग करना ठीक है, क्योंकि यह केवल एक बार होता है।
3 और 100,000 प्रविष्टियों के बीच होगा, प्रत्येक एक अद्वितीय होगा, और मुझे लगता है कि 80% मामलों में 100 से कम प्रविष्टियां होंगी। उन मामलों में एक सरल बेवकूफ लुकअप "पर्याप्त तेज़" है। (== कोई भी शिकायत नहीं कर रहा है)
हालांकि ऐसे मामलों में जहां 10k + प्रविष्टियां हैं, एक बेवकूफ दृष्टिकोण की लुकअप गति अस्वीकार्य है। सी में तारों के लिए अच्छा हैशटेबल आधारित लुकअप प्रदर्शन देने के लिए एक अच्छा तरीका क्या है? मान लें कि मेरे पास बूस्ट/आदि जैसी तृतीय-पक्ष वाणिज्यिक लाइब्रेरी नहीं है। मुझे क्या हैश एल्गोरिदम का उपयोग करना चाहिए? मैं कैसे तय करूं?
http://www.gnu.org/s/gperf/? –
भी http://cmph.sourceforge.net/ – Nemo