मान लें कि मेरे पास लाखों तार हैं। प्रत्येक स्ट्रिंग का एक मूल्य है। मैं इनपुट स्ट्रिंग द्वारा इस मान को पुनर्प्राप्त करना चाहता हूं लेकिन मैं इन सभी तारों को स्टोर नहीं करना चाहता क्योंकि वे बहुत सी जगह लेते हैं। मैं हैश टेबल का उपयोग नहीं कर सकता क्योंकि इसकी स्मृति में सभी या कम से कम कई तारों को स्टोर करने की आवश्यकता है। तो मेरे मामले के लिए अच्छी डेटा संरचना क्या है (मुझे किसी भी स्ट्रिंग को जोड़ने या हटाने की ज़रूरत नहीं है, मेरे पास पहले से ही तैयार डेटा है और पढ़ना केवल ऑपरेशन की अनुमति है)तारों को स्टोर करने के लिए मेमोरी कुशल तरीका
उत्तर
हैश तालिका का उपयोग न करने का आपका कारण नहीं है वर्तमान में आपके प्रश्न में सीमित जानकारी के आधार पर ध्वनि मान्य है। अगर अच्छी तरह लागू किया गया तो यह काफी कुशल है। यदि डुप्लिकेट तार संभव हो तो स्मृति की खपत को कम करने के लिए, यदि आपकी आवश्यकताओं के लिए स्वीकार्य है, तो डुप्लिकेट तारों को संग्रहीत करने में स्मृति को बर्बाद न करने का लाभ भी हो सकता है।
यदि आप लुकअप करते हैं तो आप रचनात्मक थे कि आप हैश तालिका में प्रत्येक स्ट्रिंग का संकुचित रूप भी संग्रहित कर सकते हैं। आम तौर पर तार कितने समय तक होते हैं?
औसत लंबाई 10 अक्षरों है। कम से कम मैं अपने हैशटेबल की एक आइटम बाल्टी के साथ तारों को स्टोर नहीं कर सकता। तो मुझे लगता है कि इस दृष्टिकोण को सुधारने का कोई तरीका मौजूद है। – Neir0
उपयोग एक trie आम सबस्ट्रिंग भंडारण को रोकने के लिए ..
ट्री अच्छा विचार है लेकिन यह बहुत धीमी हैशटेबल है। – Neir0
@ लार्समैन हे!हालांकि मैंने इस तरह के बारे में कुछ बड़े रेगेक्स पैटर्न की दक्षता को अधिकतम करने के लिए किया है, हालांकि अब मुझे आश्चर्य है कि अगर यह रेगेक्स स्ट्रिंग को पार्स किया जाता है तो यह स्वचालित रूप से किया जाता है। यह जानकर अच्छा लगा कि इसे क्या कहा जाता है। – Nolo
एक हैशटेबल तारों को संग्रहित करने का एक स्मृति प्रभावी तरीका नहीं है, हालांकि – argentage
आप Judy tree है, जो एक संस्करण स्ट्रिंग कुंजी के लिए बनाया गया दोनों तेजी से और कॉम्पैक्ट डिज़ाइन किया गया है, और है को देखने के लिए चाहते हो सकता है। इसका कार्यान्वयन sourceforge पर उपलब्ध है।
यदि आप शब्द सूची को पूर्व-संसाधित कर सकते हैं तो CMPH जैसे सही हैंश पर एक नज़र डालें।
CMPH डॉक्स से (gperf एक और है, लेकिन छोटे डेटा सेट के लिए अनुकूलित लगता है।):
एक परिपूर्ण हैश फंक्शन टकराव के बिना मीटर पूर्णांक संख्याओं के एक समूह में एन चाबियों का एक स्थिर सेट नक्शे, जहां एम एन से बड़ा या बराबर है। यदि एम n के बराबर है, तो फ़ंक्शन को न्यूनतम कहा जाता है।
...
CMPH लाइब्रेरी एक आसान से उपयोग, उत्पादन गुणवत्ता, तेजी से एपीआई में नवीनतम और अधिक कुशल एल्गोरिदम समाहित। पुस्तकालय को बड़ी प्रविष्टियों के साथ काम करने के लिए डिज़ाइन किया गया था जो मुख्य स्मृति में फिट नहीं हो सकते हैं। इसका उपयोग 100 मिलियन से अधिक कुंजी के साथ सेट के लिए न्यूनतम परिपूर्ण हैश फ़ंक्शंस बनाने के लिए सफलतापूर्वक किया गया है, ...
- 1. कुशल तरीका?
- 2. MySQL लंबे तारों को स्टोर करने का सबसे अच्छा तरीका
- 3. तारों के बड़े सेट में अस्तित्व की जांच करने का कुशल तरीका
- 4. मेमोरी कुशल multivaluemap
- 5. एक mysql तालिका में unordered जोड़ी को स्टोर करने के लिए कुशल तरीका
- 6. यादृच्छिक आकस्मिक तालिकाओं को उत्पन्न करने के लिए कुशल तरीका?
- 7. तारों को डुप्लिकेट करने के लिए जावास्क्रिप्ट शॉर्टेंड तरीका
- 8. पाइथन शब्दकोशों के लिए मेमोरी कुशल विकल्प
- 9. पायथन के साथ फ़ाइल में शब्दकोश (हैश) स्टोर करने के लिए कुशल तरीका?
- 10. आसान तरीका स्टोर करने के लिए/जावा
- 11. अद्वितीय तारों की कुशल सूची सी #
- 12. जावा: मेमोरी कुशल ByteArrayOutputStream
- 13. जावास्क्रिप्ट में प्राथमिकता कतार लागू करने के लिए कुशल तरीका?
- 14. एक्सेल फ़ाइलों को पढ़ने के लिए मेमोरी-कुशल जावा लाइब्रेरी?
- 15. मेमोरी कुशल XSLT प्रोसेसर
- 16. बहुभाषी तारों को संग्रहीत करने के लिए सर्वोत्तम अभ्यास
- 17. मेमोरी कुशल सी # प्रोग्रामिंग
- 18. कम-एन्ट्रॉपी अल्फान्यूमेरिक तारों के लिए कुशल हैश फ़ंक्शन
- 19. कुशल तरीका
- 20. पुनरावर्तक पेड़ की गणना करने के लिए कुशल तरीका?
- 21. एकाधिक गुणों पर कॉल करने के लिए कुशल तरीका।
- 22. ग्राफ़ सिद्धांत एल्गोरिदम का अभ्यास करने के लिए कुशल तरीका
- 23. धागे में हेरफेर करने के लिए कुशल तरीका RxJava
- 24. हास्केल - एल्गोरिदम पूरा करने के लिए अधिक कुशल तरीका?
- 25. कुशल तरीका
- 26. कुशल तरीका
- 27. घुसपैठ गिनने के लिए अधिक कुशल तरीका?
- 28. ग्रिड क्वाड्रंट्स की गणना करने के लिए कुशल तरीका
- 29. कुशल तरीका
- 30. क्रमांकित तारों की सूची आरंभ करने के लिए त्वरित तरीका?
प्रोग्रामिंग भाषा क्या है? इसके अलावा, क्या कई समान तार हैं? –
@ jdv-Jan de Vaan कोई भी तार अनूठा नहीं है। मुझे नहीं लगता कि मेरा प्रश्न भाषा विशिष्ट है लेकिन मैं सी # पसंद करता हूं। – Neir0
यह स्पष्ट नहीं है कि आपको क्या करना है। क्या आपको बस उन नंबरों को निकालने और दूसरी फ़ाइल में सहेजने की आवश्यकता है? या क्या आपको उनके साथ कुछ गणना करने की ज़रूरत है? क्या इनपुट ऑर्डर संरक्षित नहीं है तो यह ठीक है? –