Algoritma Random Search (Random Search) pada Java: Pendahuluan, Cara Kerja, Contoh

Algoritma Pencarian Acak, juga dikenal sebagai pencarian Monte Carlo, adalah metode pencarian berdasarkan keacakan. Daripada memeriksa secara berurutan setiap elemen dalam array data, algoritma ini secara acak memilih sejumlah elemen untuk diperiksa. Pendekatan ini menghemat waktu dan sumber daya dibandingkan dengan pencarian sekuensial.

Bagaimana itu bekerja

  1. Langkah 1: Mulailah dengan larik data yang ingin Anda cari.

  2. Langkah 2: Pilih secara acak sejumlah elemen untuk diperiksa.

  3. Langkah 3: Periksa elemen yang dipilih untuk melihat apakah cocok dengan kondisi pencarian.

  4. Langkah 4: Jika elemen yang cocok ditemukan, kembalikan hasilnya; jika tidak, kembali ke Langkah 2.

  5. Langkah 5: Lanjutkan proses hingga kecocokan ditemukan atau jumlah percobaan maksimum tercapai.

Keuntungan dan kerugian

Keuntungan:

  • Hemat Sumber Daya: Menghemat waktu dan memori, terutama untuk kumpulan data yang besar.
  • Keacakan: Tidak mudah diprediksi, cocok untuk situasi yang memerlukan keacakan.

Kekurangan:

  • Tidak Ada Jaminan Sukses: Tidak ada jaminan bahwa algoritme akan mendapatkan hasil yang diinginkan.
  • Mungkin Membutuhkan Waktu Lama: Dalam kasus terburuk, algoritme bisa memakan waktu lebih lama daripada penelusuran berurutan.

Contoh dan Penjelasan

Perhatikan contoh penggunaan Algoritma Pencarian Acak berikut untuk menemukan bilangan bulat dalam 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.");  
        }  
    }  
}  

Dalam contoh ini, kami menggunakan Algoritma Pencarian Acak untuk menemukan bilangan bulat dalam sebuah array. Kami mengulangi array, memilih indeks secara acak, dan memeriksa apakah elemen pada indeks tersebut cocok dengan nomor target. Jika ditemukan, kami mengembalikan indeks; jika tidak, kami lanjutkan hingga jumlah upaya maksimum tercapai.