खोज और सॉर्टिंग एल्गोरिदमिक प्राइमेटिव हैं। मानक पुस्तकालय के लिए तेजी से विश्वसनीय कार्यान्वयन के लिए यह सहायक है। अन्यथा, डेवलपर्स पहिया को फिर से शुरू करने में समय बर्बाद करते हैं।
हालांकि, .NET Framework के मामले में, यह दुर्भाग्यपूर्ण है कि एल्गोरिदम के विशिष्ट विकल्प उन्हें कम से कम उपयोगी बनाने के लिए होते हैं। कुछ मामलों में, उनके व्यवहार परिभाषित किया गया है नहीं: सूची में एक ही मूल्य के साथ एक से अधिक तत्व शामिल
List<T>.BinarySearch
हैं, तो विधि घटनाओं का केवल एक ही देता है, और यह घटनाओं में से किसी एक वापस कर सकती है, जरूरी नहीं कि पहले एक।
List<T>
यह कार्यान्वयन एक अस्थिर प्रकार का प्रदर्शन करता है; यानी, यदि दो तत्व बराबर हैं, उनका ऑर्डर संरक्षित नहीं किया जा सकता है। इसके विपरीत, एक स्थिर प्रकार बराबर तत्वों के क्रम को संरक्षित करता है।
यह शर्म की बात है, क्योंकि निर्धारक एल्गोरिदम हैं जो कि तेज़ी से हैं, और ये ब्लॉक बनाने के रूप में अधिक उपयोगी होंगे। यह ध्यान देने योग्य है कि पाइथन, रूबी और गो में बाइनरी खोज एल्गोरिदम सभी मिलान करने वाले तत्व को ढूंढते हैं।
स्रोत
2014-02-19 15:34:26
असल में यह एक अच्छा सवाल है। लेकिन क्या किसी भी प्रकार की प्रणाली (केवल सी #/एनईटी) के लिए यह संभव है कि किसी विधि को "क्रमबद्ध" वस्तुओं पर काम करने की अनुमति दें? यदि आप किसी प्रकार की प्रणाली पर सॉर्ट किए जाते हैं तो आपको कैसे पता चलेगा? –