رینڈم سرچ (Random Search) الگورتھم میں Java: تعارف، یہ کیسے کام کرتا ہے، مثال

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

یہ کیسے کام کرتا ہے

  1. مرحلہ 1: اس ڈیٹا اری کے ساتھ شروع کریں جسے آپ تلاش کرنا چاہتے ہیں۔

  2. مرحلہ 2: جانچنے کے لیے تصادفی طور پر عناصر کی ایک خاص تعداد کو منتخب کریں۔

  3. مرحلہ 3: منتخب عناصر کو چیک کریں کہ آیا وہ تلاش کی حالت سے میل کھاتے ہیں۔

  4. مرحلہ 4: اگر کوئی مماثل عنصر پایا جاتا ہے، تو نتیجہ واپس کریں۔ اگر نہیں تو، مرحلہ 2 پر واپس جائیں۔

  5. مرحلہ 5: اس عمل کو جاری رکھیں جب تک کوئی میچ نہ مل جائے یا کوششوں کی زیادہ سے زیادہ تعداد تک پہنچ جائے۔

فائدے اور نقصانات

فوائد:

  • وسائل کے لحاظ سے موثر: وقت اور میموری کو بچاتا ہے، خاص طور پر ڈیٹا کی بڑی صفوں کے لیے۔
  • بے ترتیب پن: آسانی سے پیش گوئی نہیں کی جا سکتی، ایسے حالات کے لیے موزوں ہے جن میں بے ترتیب پن کی ضرورت ہوتی ہے۔

نقصانات:

  • کامیابی کی کوئی گارنٹی نہیں: اس بات کی کوئی یقین دہانی نہیں ہے کہ الگورتھم مطلوبہ نتیجہ تلاش کرے گا۔
  • زیادہ وقت لگ سکتا ہے: بدترین صورت میں، الگورتھم ترتیب وار تلاش سے زیادہ وقت لے سکتا ہے۔

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

کسی صف میں عدد کو تلاش کرنے کے لیے رینڈم سرچ الگورتھم کے استعمال کی درج ذیل مثال پر غور کریں:

import java.util.Random;  
  
public class RandomSearchExample {  
    static int randomSearch(int[] arr, int target) {  
        Random rand = new Random();  
        int maxAttempts = arr.length; // Maximum number of attempts  
        for(int i = 0; i < maxAttempts; i++) {  
            int randomIndex = rand.nextInt(arr.length); // Randomly select an index  
            if(arr[randomIndex] == target) {  
                return randomIndex; // Return the index if found  
            }  
        }  
        return -1; // Return -1 if not found  
    }  
  
    public static void main(String[] args) {  
        int[] numbers = {1, 5, 9, 3, 7};  
        int target = 3;  
        int result = randomSearch(numbers, target);  
        if(result != -1) {  
            System.out.println("Number " + target + " found at index " + result);  
        } else {  
            System.out.println("Number " + target + " not found in the array.");  
        }  
    }  
}  

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