Heim >Backend-Entwicklung >PHP-Tutorial >Beispielanalyse und Erklärung des in PHP implementierten binären Suchalgorithmus

Beispielanalyse und Erklärung des in PHP implementierten binären Suchalgorithmus

jacklove
jackloveOriginal
2018-07-05 17:50:241657Durchsuche

Dieser Artikel stellt hauptsächlich den in PHP implementierten binären Suchalgorithmus vor und analysiert die Prinzipien des binären Suchalgorithmus und Implementierungstechniken wie Schleifen und Rekursionen in Form von Beispielen

Die Beispiele in diesem Artikel beschreiben den in PHP implementierten binären Suchalgorithmus. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

Die binäre Suchmethode erfordert, dass das Array ein geordnetes Array ist

Angenommen, unser Array ist ein zunehmendes Array, zuerst benötigen wir um die Mitte des Arrays zu finden.

Eins. Um die Mittelposition zu kennen, müssen Sie die Startposition und die Endposition kennen und dann den Wert der Mittelposition nehmen, um ihn mit unserem Wert zu vergleichen.
Zwei. Wenn der Mittelwert größer als unser angegebener Wert ist, bedeutet dies, dass unser Wert zu diesem Zeitpunkt erneut in zwei Teile geteilt werden muss. Da er vor der Mitte liegt, ist der Wert, den wir ändern müssen Zu diesem Zeitpunkt sollte der Wert der Endposition sein. An diesem Punkt befinden wir uns in der Mitte.
Drei. Im Gegenteil, wenn der Mittelwert kleiner als der von uns angegebene Wert ist, bedeutet dies, dass der angegebene Wert nach der Mittelposition liegt. Zu diesem Zeitpunkt muss der Wert des letzten Teils erneut durch zwei geteilt werden, da er danach liegt Der mittlere Wert, also der Wert, den wir ändern müssen, ist der Startpositionswert. Der Wert der Startposition zu diesem Zeitpunkt sollte zu diesem Zeitpunkt unsere mittlere Position sein, bis wir den angegebenen Wert finden.
Vier. Oder der Zwischenwert entspricht der anfänglichen Startposition oder der Endposition (in diesem Fall wird der angegebene Wert nicht gefunden). Verwenden wir Code, um ihn zu implementieren ~

//循环实现
function getValue($num,$arr)
{
//查找数组的中间位置
$length=count($arr);
$start=0;
$end=$length;
$middle=floor(($start+$end)/2);
//循环判断
while($start>$end-1)
{
if($arr[middle]==$num)
{
return middle+1;
}elseif($arr[middle]<$num)
{
//如果当前要查找的值比当前数组的中间值还要打,那么意味着该值在数组的后半段
//所以起始位置变成当前的middle的值,end位置不变。
$start=$middle;
$middle=floor(($start+$end)/2);
}else{
//反之
$end=$middle;
$middle=floor(($start+$end)/2);
}}
return false;
}


//循环实现
function getValue($num,$arr)
{
//查找数组的中间位置
$length=count($arr);
$start=0;
$end=$length;
$middle=floor(($start+$end)/2);
//循环判断
while($start>$end-1)
{
if($arr[middle]==$num)
{
return middle+1;
}elseif($arr[middle]<$num)
{
//如果当前要查找的值比当前数组的中间值还要打,那么意味着该值在数组的后半段
//所以起始位置变成当前的middle的值,end位置不变。
$start=$middle;
$middle=floor(($start+$end)/2);
}else{
//反之
$end=$middle;
$middle=floor(($start+$end)/2);
}}
return false;
}

Artikel, die Sie interessieren könnten:

Half In PHP implementierter Suchalgorithmus Beispielerklärung

Beispiel für einen von PHP implementierten String-Matching-Algorithmus

Beispielerklärung des Maximums Von PHP implementierter Forward-Matching-Algorithmus

Das obige ist der detaillierte Inhalt vonBeispielanalyse und Erklärung des in PHP implementierten binären Suchalgorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn