Algoritmi i Kërkimit Binar (Binary Search) në Java

Algoritmi Binar i Kërkimit është një metodë efikase në Java programim, e përdorur për të gjetur një vlerë specifike brenda një grupi të renditur. Kjo qasje e ndan vazhdimisht grupin në dy pjesë dhe krahason vlerën e kërkimit me elementin e mesëm.

Si funksionon Algoritmi i Kërkimit Binar

Algoritmi i Kërkimit Binar fillon duke krahasuar vlerën e kërkimit me elementin e mesëm të grupit. Nëse vlera e kërkimit është e barabartë me elementin e mesëm, algoritmi kthen pozicionin e atij elementi. Nëse vlera e kërkimit është më e vogël se elementi i mesëm, algoritmi vazhdon kërkimin në gjysmën e majtë të grupit. Nëse vlera e kërkimit është më e madhe, algoritmi vazhdon kërkimin në gjysmën e djathtë të grupit. Ky proces përsëritet derisa të gjendet vlera e kërkimit ose të mos ketë më elementë për të kërkuar.

Avantazhet dhe disavantazhet e Algoritmit të Kërkimit Binar

Përparësitë:

  • Efikasitet i lartë: Ky algoritëm eliminon gjysmën e elementeve në çdo hap, duke optimizuar kërkimin për vargje të mëdha.
  • Kompleksiteti kohor i ulët: Kompleksiteti kohor i këtij algoritmi është O(log n), duke e bërë atë efektiv për grupe të dhënash të mëdha.

Disavantazhet:

  • Kërkesa e vargjeve të renditura: Algoritmi funksionon vetëm me vargje të renditura.

Shembull dhe Shpjegim

Konsideroni një shembull të përdorimit të Algoritmit Binar të Kërkimit për të gjetur një numër të plotë specifik në një grup me numra të plotë të renditur në 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");  
        }  
    }  
}  

Në këtë shembull, ne përdorim Algoritmin Binar të Kërkimit për të gjetur numrin 9 në një grup me numra të plotë të renditur. Algoritmi përsëritet përmes grupit dhe krahason vlerën e kërkimit me vlerën e mesme. Në këtë rast, numri 9 gjendet në pozicionin 4(indeksi i bazuar në 0) në grup.

Ndërsa ky shembull demonstron se si Algoritmi i Kërkimit Binar mund të gjejë një element në një grup me numra të plotë të renditur, ai gjithashtu mund të aplikohet në skenarë të tjerë kërkimi në Java programim.