बाइनरी खोज क्या है?
बाइनरी खोज (आधा-अंतराल खोज) एक खोज एल्गोरिदम है जो क्रमबद्ध सरणी में लक्ष्य मान की स्थिति ढूंढता है। यह लक्ष्य मान की तुलना मध्य तत्व से करता है और खोज स्थान को आधा कर देता है।
मुख्य बिंदु
- केवल क्रमबद्ध सरणी पर काम करता है
- समय जटिलता: O(log n)
- दुनिया के सभी नाम क्रमबद्ध हों तो किसी नाम को अधिकतम 35 पुनरावृत्तियों में ढूंढ सकते हैं
एल्गोरिदम
- Low = 0, High = n-1 सेट करें
- जब तक Low ≤ High:
- Mid = (Low + High) / 2
- यदि a[mid] < key: Low = mid + 1
- यदि a[mid] > key: High = mid - 1
- अन्यथा: mid वापस करें
- नहीं मिला तो -1 वापस करें
उदाहरण कोड
int binarySearch(int low, int high, int key) {
while (low <= high) {
int mid = (low + high) / 2;
if (a[mid] < key)
low = mid + 1;
else if (a[mid] > key)
high = mid - 1;
else
return mid;
}
return -1; // key not found
}