जब आइटम मौजूद नहीं है तो मैं List<T>
की बाइनरी खोज विधि के बारे में उलझन में हूं।सी # सूची <T>। मूल्य खोज नहीं होने पर BinarySearch वापसी मूल्य
मैं अपेक्षा के अनुरूप,
List<long> theList = {1, 3, 5, ...}.
theList.BInarySearch(0)
रिटर्न 0, और theList.BInarySearch(3)
रिटर्न 1 मिल गया है।
हालांकि, theList.BinarySearch(1)
-2, और -1 जैसा मैं अपेक्षा करता हूं। एमएसडीएन मैनुअल का कहना है: "रिटर्न वैल्यू: सॉर्टेड सूची में आइटम की शून्य-आधारित इंडेक्स, यदि आइटम पाई जाती है, अन्यथा, ऋणात्मक संख्या जो आइटम के मुकाबले अगले तत्व की अनुक्रमणिका का बिटवाई पूरक है या , यदि कोई बड़ा तत्व नहीं है, तो गणना के बिटवाई पूरक। "
एक "bitwise पूरक"? मैं यहाँ क्या खो रहा हूं और यह क्यों है theList.BinarySearch(1) != -1
?
मुझे लगता है कि आप 'theList.BinarySearch (2) 'के लिए खोज रहे हैं? '1' वहीं है ... – Kobi
बिटवाईयर पूरक केवल एक संख्या है जो पहले नंबर के प्रत्येक बिट का पूरक है। 00110101 = ~ 11001010. यह एक ऑपरेशन की तरह है, लेकिन कहाँ! एक बुलियन पूरे मूल्य पर नहीं करता है, ~ प्रत्येक बिट पर नहीं करता है। –