परिचय
C# में Array.BinarySearch() मेथड एक सॉर्टेड एक-आयामी ऐरे में बाइनरी सर्च एल्गोरिदम का उपयोग करके किसी तत्व को कुशलतापूर्वक खोजता है। ऐरे का सॉर्टेड होना आवश्यक है।
सिंटैक्स
public static int BinarySearch(Array array, object value);
यहाँ array सॉर्टेड 1-D ऐरे है, और value खोजा जाने वाला ऑब्जेक्ट है।
उदाहरण 1: इंटीजर ऐरे में खोज
using System;
public class Demo {
public static void Main() {
int[] intArr = { 5, 10, 15, 20 };
Array.Sort(intArr); // बाइनरी सर्च के लिए सॉर्ट करना आवश्यक
Console.WriteLine("ऐरे तत्व...");
foreach (int i in intArr) {
Console.WriteLine(i);
}
Console.Write("तत्व 20 का सूचकांक = " + Array.BinarySearch(intArr, 20));
}
}
आउटपुट
ऐरे तत्व... 5 10 15 20 तत्व 20 का सूचकांक = 3
उदाहरण 2: स्ट्रिंग ऐरे में खोज
using System;
public class Demo {
public static void Main() {
string[] strArr = { "John", "Tim", "Fedric", "Gary", "Harry", "Damien" };
Array.Sort(strArr);
Console.WriteLine("ऐरे तत्व...");
foreach (string s in strArr) {
Console.WriteLine(s);
}
Console.Write("तत्व Gary का सूचकांक = " + Array.BinarySearch(strArr, "Gary"));
Console.Write("\nतत्व Tom का सूचकांक = " + Array.BinarySearch(strArr, "Tom"));
}
}
आउटपुट
ऐरे तत्व... Damien Fedric Gary Harry John Tim तत्व Gary का सूचकांक = 2 तत्व Tom का सूचकांक = -7
महत्वपूर्ण बिंदु
- ऐरे सॉर्टेड होना चाहिए अन्यथा परिणाम अप्रत्याशित होगा।
- यदि तत्व मिल जाता है, तो उसका जीरो-बेस्ड सूचकांक वापस करता है।
- यदि नहीं मिलता, तो एक नकारात्मक संख्या वापस करता है (बिटवाइज कॉम्प्लीमेंट ~index अगले बड़े तत्व का)।
- कस्टम तुलना के लिए
IComparerओवरलोड का उपयोग करें। - समय जटिलता: O(log n) - बड़े ऐरे के लिए रैखिक खोज से बहुत तेज।