(Binary Search) میں بائنری تلاش الگورتھم Java

بائنری سرچ الگورتھم Java پروگرامنگ میں ایک موثر طریقہ ہے، جو ترتیب شدہ صف میں ایک مخصوص قدر تلاش کرنے کے لیے استعمال ہوتا ہے۔ یہ نقطہ نظر سرنی کو مسلسل دو حصوں میں تقسیم کرتا ہے اور تلاش کی قدر کا درمیانی عنصر سے موازنہ کرتا ہے۔

بائنری سرچ الگورتھم کیسے کام کرتا ہے۔

بائنری سرچ الگورتھم سرنی کے درمیانی عنصر کے ساتھ تلاش کی قدر کا موازنہ کرکے شروع ہوتا ہے۔ اگر تلاش کی قدر درمیانی عنصر کے برابر ہے، تو الگورتھم اس عنصر کی پوزیشن لوٹاتا ہے۔ اگر تلاش کی قدر درمیانی عنصر سے کم ہے، تو الگورتھم صف کے بائیں نصف میں تلاش جاری رکھتا ہے۔ اگر تلاش کی قدر زیادہ ہے تو، الگورتھم صف کے دائیں نصف میں تلاش جاری رکھتا ہے۔ یہ عمل اس وقت تک دہرایا جاتا ہے جب تک کہ تلاش کی قدر نہ مل جائے یا تلاش کے لیے مزید عناصر نہ ہوں۔

بائنری سرچ الگورتھم کے فائدے اور نقصانات

فوائد:

  • اعلی کارکردگی: یہ الگورتھم بڑی صفوں کی تلاش کو بہتر بناتے ہوئے ہر قدم میں آدھے عناصر کو ختم کرتا ہے۔
  • کم وقت کی پیچیدگی: اس الگورتھم کی وقتی پیچیدگی O(log n) ہے، جو اسے بڑے ڈیٹاسیٹس کے لیے موثر بناتی ہے۔

نقصانات:

  • ترتیب شدہ صف کی ضرورت: الگورتھم صرف ترتیب شدہ صفوں کے ساتھ کام کرتا ہے۔

مثال اور وضاحت

میں ترتیب شدہ عددی صف میں ایک مخصوص عدد تلاش کرنے کے لیے بائنری سرچ الگورتھم استعمال کرنے کی ایک مثال پر غور کریں 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 پروگرامنگ میں تلاش کے دیگر منظرناموں پر بھی کیا جا سکتا ہے۔