Heim  >  Artikel  >  Backend-Entwicklung  >  Gemeinsame Nutzung des einfachen PHP-Array-Suchalgorithmus

Gemeinsame Nutzung des einfachen PHP-Array-Suchalgorithmus

小云云
小云云Original
2018-03-21 10:28:091435Durchsuche

Für die Suche nach Arrays in PHP kann die sequentielle Suche oder die binäre Suche verwendet werden. Unter diesen ist die sequentielle Suche relativ einfach, d. h. ein Vergleich und eine Suche nacheinander. Der Nachteil liegt aber auch auf der Hand. Wenn das gesuchte Element zufällig am letzten liegt, ist die Anzahl der Schleifen zu groß.

1. Beschreibung des sequentiellen Suchalgorithmus

Durchsuchen Sie das Array nacheinander, um zu bestätigen, ob ein Element vorhanden ist, und kehren Sie zurück das Element, wenn es Standortinformationen enthält. Flag-Informationen können festgelegt werden. Der Anfangswert ist „false“. Suchen Sie den direkten Ausgabeort und setzen Sie das Flag auf „true“. Wenn das Schleifenende-Flag immer noch falsch ist, wurde es nicht gefunden.

Code-Reflexion:

<br/>
$arr =[123,19,38,29,10,34];
function search($arr,$target){
    // 参数:目标数组 目标元素
	foreach ($arr as $key => $value) {
		if($value == $target){
			return $key.&#39;<br>&#39;;
		}
	}
	return false;
}

2. Beschreibung des binären Suchalgorithmus

Gehen Sie davon aus, dass das Array in streng aufsteigender Reihenfolge ist. Ist das Zielelement größer als der Mittelwert, wird der Suchbereich nach rechts um die Hälfte reduziert. Ist der Wert des Zielelements kleiner als der Wert des mittleren Elements, wird der Suchbereich nach links um die Hälfte reduziert.

Code-Reflexion:

function half_search($arr,$target){
	// 定义出初始的第一个,最后一个元素的下标范围
	$len = count($arr);
	$left =0;
	$right =$len -1;
	// 循环查找
	// 范围不断的移动 ,必须满足一个条件
	// 最左侧元素的下标 小于等于右侧元素的下标
	while($left <= $right){
	 	// 中间元素的下标
	 	$middle = floor(($left + $right) /2);
	 	// 目标元素与中间元素进行比较
	 	if($target == $arr[$middle]){
	 		return $middle;
	 	}
	 	// 如果目标元素小于中间元素
	 	// 范围向左缩小一半	
	 	if($target < $arr[$middle]){
	 		$right =$middle-1 ;
	 	}
	 	// 如果目标元素大于中间元素
	 	// 范围向右缩小一半
	 	if($target > $arr[$middle]){
	 		$left = $middle + 1;
	 	}
	}
	 // 循环终止了
	 // 没有找到
	 return false;
}

Verwandte Empfehlungen:

PHP-Binärmethode zum Implementieren eines Tutorials zur Array-Suchfunktion

PHP-Array-Suchtastenfunktionen

Zusammenfassung der PHP-Array-Suchfunktion

Das obige ist der detaillierte Inhalt vonGemeinsame Nutzung des einfachen PHP-Array-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