अनियमित खोज (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.");  
        }  
    }  
}  

यस उदाहरणमा, हामी एर्रेमा पूर्णांक फेला पार्नको लागि अनियमित खोज एल्गोरिदम प्रयोग गर्छौं। हामी एरे मार्फत पुनरावृत्ति गर्छौं, अनियमित रूपमा एक अनुक्रमणिका चयन गर्नुहोस्, र जाँच गर्नुहोस् कि यदि त्यो अनुक्रमणिकाको तत्व लक्ष्य संख्यासँग मेल खान्छ। यदि फेला पर्यो भने, हामी सूचकांक फिर्ता गर्छौं; यदि होइन भने, प्रयासहरूको अधिकतम संख्या नपुगेसम्म हामी जारी राख्छौं।