Algoritmu tat-Tiftix Binarju (Binary Search) fil-PHP: Spjegazzjoni, Passi u Eżempju

L-algoritmu tat-Tiftix Binarju huwa metodu effiċjenti biex jinstab valur speċifiku f'firxa magħżula. Dan l-approċċ jaqsam il-firxa f'partijiet iżgħar u kontinwament iqabbel il-valur fil-pożizzjoni tan-nofs tal-firxa tat-tfittxija mal-valur fil-mira. Jekk il-valuri jaqblu, jinstab il-valur mixtieq; inkella, l-algoritmu jkompli jonqos il-firxa tat-tfittxija u jirrepeti l-proċess sakemm jinstab il-valur jew ma jitħallewx aktar elementi biex jiġu eżaminati.

Passi:

  1. Inizjalizza l-firxa tat-tfittxija: Ibda billi tagħżel il-firxa tat-tfittxija mill-ewwel pożizzjoni left  sal-aħħar pożizzjoni right  tal-firxa.
  2. Sib il-punt tan-nofs: Ikkalkula l-punt tan-nofs billi tagħmel medja tal- left pożizzjonijiet u t-tajba; dan huwa l-punt tan-nofs tal-firxa tat-tfittxija.
  3. Qabbel il-valuri: Qabbel il-valur fil-punt tan-nofs mal-valur fil-mira.
  4. Immaniġġja r-riżultat tat-tqabbil: Jekk il-valur fil-punt tan-nofs jaqbel mal-valur fil-mira, irritorna din il-pożizzjoni. Jekk il-valur fil-punt tan-nofs huwa inqas mill-valur fil-mira, aġġorna l-pożizzjoni tax-xellug għan-nofs + 1 biex tfittex in-nofs tal-lemin. Jekk il-valur fil-punt tan-nofs huwa akbar mill-valur fil-mira, aġġorna l-pożizzjoni tal-lemin għan-nofs- 1 biex tfittex in-nofs tax-xellug.
  5. Irrepeti: Irrepeti l-passi 2 sa 4 sakemm jinstab il-valur jew ma jkunx hemm aktar elementi biex tiċċekkja left > right.

Vantaġġi u Żvantaġġi

Vantaġġi:

  • Prestazzjoni effiċjenti: Il-kumplessità tal-ħin tal-algoritmu hija O(log n), li jagħmilha effiċjenti ħafna għall-immaniġġjar ta' settijiet ta' dejta kbar.
  • Effettiva għal settijiet ta' dejta kbar: It-Tiftix Binarju huwa effettiv biex inaqqas in-numru ta' elementi biex jiġu eżaminati malajr għal settijiet ta' dejta kbar.

Żvantaġġi:

  • Applikabbli biss għal arrays magħżula: L-algoritmu jaħdem biss fuq arrays magħżula.
  • Numru varjabbli ta 'passi: In-numru ta' passi meħtieġa biex jinstab il-valur jiddependi fuq il-pożizzjoni tiegħu fil-firxa, u jista 'jieħu ħafna passi għal valuri qrib it-truf.

Eżempju: Tiftix Binarju biex issib il-valur 12 f'firxa magħżula f'PHP

function binarySearch($arr, $target) {  
    $left = 0;  
    $right = count($arr)- 1;  
  
    while($left <= $right) {  
        $mid = floor(($left + $right) / 2);  
  
        if($arr[$mid] == $target) {  
            return $mid; // Return the position of the value  
        } elseif($arr[$mid] < $target) {  
            $left = $mid + 1;  
        } else {  
            $right = $mid- 1;  
        }  
    }  
  
    return -1; // Value not found  
}  
  
$array = [2, 5, 8, 12, 15, 20, 30];  
$targetValue = 12;  
  
$result = binarySearch($array, $targetValue);  
  
if($result != -1) {  
    echo "Value $targetValue found at position $result.";  
} else {  
    echo "Value $targetValue not found in the array.";  
}  

Spjegazzjoni tal-Eżempju

  1. Nibdew bil-firxa ta 'tfittxija inizjali mill-ewwel pożizzjoni left = 0 sal-aħħar pożizzjoni right = 6  tal-firxa.
  2. Aħna nikkalkulaw il-punt tan-nofs(nofs) billi nagħmlu medja tal-pożizzjonijiet tax-xellug u tal-lemin; mid = 3. Il-valur f'nofs huwa 12.
  3. Aħna nqabblu l-valur fi mid(12) mal-valur fil-mira(12) u nsibu taqbila, għalhekk nirritornaw il-pożizzjoni 3.
  4. L-algoritmu jintemm, u noħorġu r-riżultat "Valur 12 misjub fil-pożizzjoni 3."