बाइनरी सर्च (Binary Search) एल्गोरिदम में Java

बाइनरी सर्च एल्गोरिदम Java प्रोग्रामिंग में एक कुशल तरीका है, जिसका उपयोग क्रमबद्ध सरणी के भीतर एक विशिष्ट मान खोजने के लिए किया जाता है। यह दृष्टिकोण लगातार सरणी को दो भागों में विभाजित करता है और खोज मान की तुलना मध्य तत्व से करता है।

बाइनरी सर्च एल्गोरिथम कैसे काम करता है

बाइनरी सर्च एल्गोरिदम सरणी के मध्य तत्व के साथ खोज मूल्य की तुलना करके शुरू होता है। यदि खोज मान मध्य तत्व के बराबर है, तो एल्गोरिदम उस तत्व की स्थिति लौटाता है। यदि खोज मान मध्य तत्व से कम है, तो एल्गोरिदम सरणी के बाएं आधे हिस्से में खोज जारी रखता है। यदि खोज मान अधिक है, तो एल्गोरिदम सरणी के दाहिने आधे हिस्से में खोज जारी रखता है। यह प्रक्रिया तब तक दोहराई जाती है जब तक कि खोज मूल्य नहीं मिल जाता या खोजने के लिए कोई और तत्व नहीं रह जाते।

बाइनरी सर्च एल्गोरिथम के फायदे और नुकसान

लाभ:

  • उच्च दक्षता: यह एल्गोरिदम प्रत्येक चरण में आधे तत्वों को हटा देता है, बड़े सरणियों की खोज को अनुकूलित करता है।
  • कम समय की जटिलता: इस एल्गोरिदम की समय जटिलता ओ(लॉग एन) है, जो इसे बड़े डेटासेट के लिए प्रभावी बनाती है।

नुकसान:

  • क्रमबद्ध सारणी की आवश्यकता: एल्गोरिथ्म केवल क्रमबद्ध सारणी के साथ काम करता है।

उदाहरण एवं स्पष्टीकरण

में क्रमबद्ध पूर्णांक सरणी में एक विशिष्ट पूर्णांक खोजने के लिए बाइनरी खोज एल्गोरिदम का उपयोग करने के एक उदाहरण पर विचार करें Java ।

public class BinarySearchExample {  
    public static int binarySearch(int[] array, int target) {  
        int left = 0;  
        int right = array.length- 1;  
  
        while(left <= right) {  
            int mid = left +(right- left) / 2;  
  
            if(array[mid] == target) {  
                return mid; // Return position if found  
            } else if(array[mid] < target) {  
                left = mid + 1;  
            } else {  
                right = mid- 1;  
            }  
        }  
        return -1; // Return -1 if not found  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = { 1, 3, 5, 7, 9, 11, 13, 15 };  
        int target = 9;  
  
        int position = binarySearch(numbers, target);  
  
        if(position != -1) {  
            System.out.println("Element " + target + " found at position " + position);  
        } else {  
            System.out.println("Element " + target + " not found in the array");  
        }  
    }  
}  

इस उदाहरण में, हम क्रमबद्ध पूर्णांक सरणी में संख्या 9 खोजने के लिए बाइनरी सर्च एल्गोरिदम का उपयोग करते हैं। एल्गोरिदम सरणी के माध्यम से पुनरावृत्त करता है और खोज मान की तुलना मध्य मान से करता है। इस मामले में, संख्या 9 सरणी में स्थिति 4(0-आधारित सूचकांक) पर पाई जाती है।

जबकि यह उदाहरण दर्शाता है कि बाइनरी सर्च एल्गोरिदम एक क्रमबद्ध पूर्णांक सरणी में एक तत्व कैसे ढूंढ सकता है, इसे Java प्रोग्रामिंग में अन्य खोज परिदृश्यों पर भी लागू किया जा सकता है।