Algoritma Carian Binari (Binary Search) dalam Java

Algoritma Carian Binari ialah kaedah yang cekap dalam Java pengaturcaraan, digunakan untuk mencari nilai tertentu dalam tatasusunan yang disusun. Pendekatan ini secara berterusan membahagikan tatasusunan kepada dua bahagian dan membandingkan nilai carian dengan elemen tengah.

Bagaimana Algoritma Carian Binari Berfungsi

Algoritma Carian Binari bermula dengan membandingkan nilai carian dengan elemen tengah tatasusunan. Jika nilai carian adalah sama dengan elemen tengah, algoritma mengembalikan kedudukan elemen tersebut. Jika nilai carian kurang daripada elemen tengah, algoritma meneruskan carian di separuh kiri tatasusunan. Jika nilai carian lebih besar, algoritma meneruskan carian di separuh kanan tatasusunan. Proses ini berulang sehingga nilai carian ditemui atau tiada lagi elemen untuk dicari.

Kelebihan dan Kelemahan Algoritma Carian Binari

Kelebihan:

  • Kecekapan Tinggi: Algoritma ini menghapuskan separuh daripada elemen dalam setiap langkah, mengoptimumkan carian untuk tatasusunan besar.
  • Kerumitan Masa Rendah: Kerumitan masa bagi algoritma ini ialah O(log n), menjadikannya berkesan untuk set data yang besar.

Kelemahan:

  • Keperluan Susunan Diisih: Algoritma hanya berfungsi dengan tatasusunan yang diisih.

Contoh dan Penerangan

Pertimbangkan contoh menggunakan Algoritma Carian Binari untuk mencari integer tertentu dalam tatasusunan integer yang diisih dalam 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");  
        }  
    }  
}  

Dalam contoh ini, kami menggunakan Algoritma Carian Binari untuk mencari nombor 9 dalam tatasusunan integer yang diisih. Algoritma melelaran melalui tatasusunan dan membandingkan nilai carian dengan nilai tengah. Dalam kes ini, nombor 9 ditemui pada kedudukan 4(indeks berasaskan 0) dalam tatasusunan.

Walaupun contoh ini menunjukkan cara Algoritma Carian Binari boleh mencari elemen dalam tatasusunan integer yang diisih, ia juga boleh digunakan pada senario carian lain dalam Java pengaturcaraan.