मैंने एक विशिष्ट कार्यान्वयन के लिए सही संग्रह चुनने के लिए कई लेख पढ़े हैं, और मैं समझता हूं कि अंत में यह वास्तविक डेटा को बेंचमार्क करने के लिए नीचे आ जाएगा, लेकिन जब मैं व्यस्त हूं:संग्रह आइटम को संशोधित करें
सी # में किस तरह का संग्रह किया गया संग्रह किसी आइटम में संशोधन की अनुमति देता है? मुझे कोई प्रतीत नहीं होता है?
क्या ऐसा इसलिए है क्योंकि एक संशोधित को हटाने के बाद लागू किया जाएगा, फिर पुन: सम्मिलन, इस प्रकार एक स्पष्ट 'संशोधित' फ़ंक्शन व्यर्थ बना रहा है?
मैं एक संग्रह (कस्टम या मानक पुस्तकालय), यह पर प्रदर्शन निम्न कार्रवाई के साथ की जरूरत होती है।
- सम्मिलित - अक्सर
- निकालें - अक्सर
- संशोधित - बहुत बार
- करें शीर्ष एक्स तत्वों - हर बार उपरोक्त में से किसी से होता है, और अधिक, समवर्ती।
वर्तमान में मैं एक SortedSet उपयोग कर रहा हूँ, के रूप में यह ओ (logn) आवेषण प्रदान करता है, लेकिन मैं हटाने प्रदर्शन और कैसे सबसे अच्छा एक आइटम को संशोधित करने पर स्पष्ट नहीं कर रहा हूँ।
क्या संग्रह को हर समय सॉर्ट करने की आवश्यकता है? यदि आप कई संशोधनों को लागू कर सकते हैं और फिर बाद में सॉर्ट कर सकते हैं तो आपको एक बड़ा प्रदर्शन लाभ मिलेगा। –
@Evenhuis दुर्भाग्यवश हां, क्योंकि एकाधिक 'ग्राहक' इस सूची का अनुरोध करेंगे, और जब भी इस सूची में बदलाव किया जाता है, तो उन्हें क्रमबद्ध क्रम में इसकी आवश्यकता होती है। या कम से कम शीर्ष तत्व। – Vort3x
हमने अपने डेटा संरचना पाठ्यक्रम में एक संतुलित बीएसटी का उपयोग किया। यह बहुत तेज़ था लेकिन हमने इसे सी ++ में कार्यान्वित किया। आप शायद इसे मान सकते हैं। यहां एक अच्छी जानकारी स्रोत है: http: //www.codeproject।कॉम/आलेख/68500/संतुलित-बाइनरी-सर्च-ट्री-बीएसटी-सर्च-डिलीट-प्रिंस –