क्या SortedList<K ,V>
पर लोअर बाउंड फ़ंक्शन है? फ़ंक्शन को निर्दिष्ट कुंजी से बराबर या उससे अधिक पहले तत्व को वापस करना चाहिए। क्या कोई अन्य वर्ग है जो इसका समर्थन करता है?क्या सॉर्टेडलिस्ट <K ,V> पर लोअर बाउंड फ़ंक्शन है?
दोस्तों - कृपया एक बार फिर प्रश्न पढ़ें। मुझे ऐसे फ़ंक्शन की आवश्यकता नहीं है जो मौजूद होने पर कुंजी लौटाए। जब परिदृश्य में कोई सटीक कुंजी मिलान नहीं होता है तो मुझे परिदृश्य में दिलचस्पी है।
मुझे ओ (लॉग एन) समय में रूचि है। इसका मतलब है कि मुझे फोरच लूप के साथ कोई समस्या नहीं है, बल्कि यह करने का एक प्रभावी तरीका है।
मैंने इस पर कुछ परीक्षण किए हैं।
लिंक कथन न तो संकलक और न ही रनटाइम मशीन द्वारा अनुकूलित किया जाता है, इसलिए वे सभी संग्रह तत्वों के माध्यम से चलते हैं और धीमे ओ (एन) होते हैं।
public static int FindFirstIndexGreaterThanOrEqualTo<T>(
this IList<T> sortedCollection, T key
) where T : IComparable<T> {
int begin = 0;
int end = sortedCollection.Count;
while (end > begin) {
int index = (begin + end)/2;
T el = sortedCollection[index];
if (el.CompareTo(key) >= 0)
end = index;
else
begin = index + 1;
}
return end;
}
क्या हर बार जब हम कुंजी की संपत्ति पढ़ते हैं तो संग्रह उत्पन्न नहीं होता है? – agsamek
agsamek: नहीं, यह पुनर्जन्म नहीं हुआ है। यह आंतरिक श्रेणी की सूची का एक उदाहरण लौटाएगा जो मूल संग्रह में तत्वों तक सीधे पहुंच प्रदान करता है। प्रक्रिया में कुछ भी कॉपी नहीं किया गया है। –
"कुंजी और मूल्यों के लिए कोई प्रतिलिपि" सॉर्टेड डिक्शनरी –