Algoritma Panelusuran Acak (Random Search) ing Java: Pambuka, Cara Kerjane, Conto

Algoritma Random Search, uga dikenal minangka telusuran Monte Carlo, minangka metode telusuran adhedhasar acak. Tinimbang mriksa saben unsur ing array data, algoritma iki kanthi acak milih sawetara unsur sing kudu ditliti. Pendekatan iki ngirit wektu lan sumber daya dibandhingake karo telusuran urutan.

Cara Kerjane

  1. Langkah 1: Mulai nganggo larik data sing pengin digoleki.

  2. Langkah 2: Pilih kanthi acak sawetara unsur sing bakal ditliti.

  3. Langkah 3: Priksa unsur sing dipilih kanggo ndeleng apa padha cocog karo kondisi panelusuran.

  4. Langkah 4: Yen unsur sing cocog ditemokake, bali asil; yen ora, bali menyang Langkah 2.

  5. Langkah 5: Terusake proses nganti cocog ditemokake utawa tekan jumlah maksimal upaya.

Kaluwihan lan cacat

Kaluwihan:

  • Resource-Efisien: Ngirit wektu lan memori, utamané kanggo susunan data gedhe.
  • Randomness: Ora gampang diprediksi, cocok kanggo kahanan sing mbutuhake acak.

Kekurangan:

  • Ora Ana Jaminan Sukses: Ora ana jaminan yen algoritma bakal nemokake asil sing dikarepake.
  • Bisa Butuh Wektu: Ing kasus sing paling awon, algoritma bisa luwih suwe tinimbang panelusuran sing berurutan.

Tuladha lan Panjelasan

Coba conto ing ngisor iki nggunakake Algoritma Panelusuran Acak kanggo nemokake integer ing array:

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.");  
        }  
    }  
}  

Ing conto iki, kita nggunakake Algoritma Panelusuran Acak kanggo nemokake integer ing array. We iterate liwat Uploaded, acak milih indeks, lan mriksa yen unsur ing indeks cocog nomer target. Yen ditemokake, kita bali indeks; yen ora, kita terus nganti jumlah maksimum usaha tekan.