द्विआधारी खोज क्रमबद्ध सरणी पर कार्य करता है। मान की तुलना सरणी के मध्य तत्व से की जाती है। यदि समानता नहीं मिलती है, तो आधा भाग समाप्त हो जाता है जिसमें मूल्य नहीं होता है। इसी तरह दूसरे आधे हिस्से की तलाशी ली जाती है।
यहाँ हमारे सरणी में मध्य तत्व है। मान लीजिए कि हमें 62 खोजने की जरूरत है, फिर बायां भाग हटा दिया जाएगा और दायां भाग खोजा जाएगा -
ये द्विआधारी खोज की जटिलताएं हैं -
सबसे खराब प्रदर्शन | O(log n) |
सर्वश्रेष्ठ-केस प्रदर्शन | O(1) |
औसत प्रदर्शन | O(log n) |
सबसे खराब स्थान जटिलता | O(1) |
उदाहरण
आइए देखते हैं बाइनरी सर्च को लागू करने की विधि -
public static object BinarySearchDisplay(int[] arr, int key) { int minNum = 0; int maxNum = arr.Length - 1; while (minNum <=maxNum) { int mid = (minNum + maxNum) / 2; if (key == arr[mid]) { return ++mid; } else if (key < arr[mid]) { max = mid - 1; }else { min = mid + 1; } } return "None"; }