Heim  >  Artikel  >  Backend-Entwicklung  >  Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden?

Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden?

王林
王林Original
2023-09-19 13:14:01880Durchsuche

Analyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden?

PHP-Algorithmusanalyse: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden?

Übersicht:
Der binäre Suchalgorithmus ist ein effizienter Suchalgorithmus, der zum Auffinden bestimmter Elemente in geordneten Arrays geeignet ist. In diesem Artikel wird das Prinzip des binären Suchalgorithmus ausführlich vorgestellt und PHP-Codebeispiele gegeben.

  1. Prinzip:
    Der binäre Suchalgorithmus findet das Zielelement schnell, indem er den Suchbereich wiederholt um die Hälfte reduziert. Der Vorgang ist wie folgt:
  2. Beschränken Sie zunächst den Suchbereich auf den Anfang und das Ende des Arrays.
  3. Berechnen Sie dann den Index des mittleren Elements und vergleichen Sie ihn mit dem Zielelement.
  4. Wenn das Zielelement gleich ist Geben Sie zum mittleren Element direkt den Sucherfolg zurück.
  5. Wenn das Zielelement kleiner als das mittlere Element ist, bedeutet dies, dass sich das Zielelement auf der linken Seite des mittleren Elements befindet und der Suchbereich nach links eingeengt wird halb;
  6. Wenn das Zielelement größer als das mittlere Element ist, bedeutet dies, dass sich das Zielelement auf der rechten Seite des mittleren Elements befindet und die Suche auf die rechte Hälfte reduziert wird.
  7. Wiederholen Sie den obigen Vorgang Schritte, bis das Zielelement gefunden wird oder der Suchbereich leer ist, was darauf hinweist, dass die Suche fehlgeschlagen ist.
  8. Codebeispiel:
    Das Folgende ist ein Codebeispiel einer in PHP implementierten binären Suche:
function binarySearch($arr, $target) {
    $left = 0;                              // 查找范围的左边界
    $right = count($arr) - 1;               // 查找范围的右边界

    while ($left <= $right) {
        $mid = floor(($left + $right) / 2); // 计算中间元素的索引

        if ($arr[$mid] == $target) {
            return $mid;                    // 找到目标元素,返回索引
        } elseif ($arr[$mid] < $target) {
            $left = $mid + 1;               // 目标元素在中间元素的右侧
        } else {
            $right = $mid - 1;              // 目标元素在中间元素的左侧
        }
    }

    return -1;                              // 查找失败,返回-1
}

// 示例用法
$sortedArray = [1, 3, 5, 7, 9, 11, 13, 15, 17, 19];
$targetElement = 11;
$result = binarySearch($sortedArray, $targetElement);

if ($result == -1) {
    echo "目标元素 $targetElement 不存在于数组中。";
} else {
    echo "目标元素 $targetElement 的索引是 $result。";
}

Im obigen Beispiel haben wir zwei Variablen mit dem Namen binarySearch的函数来实现二分查找。函数接受两个参数:有序数组$arr和目标元素$target。函数运行的过程中,使用了$left$right definiert, um die linken und rechten Grenzen des Suchbereichs darzustellen, indem wir die ständig angepasst haben Grenzen Sie den Suchbereich ein und finden Sie schließlich das Zielelement oder stellen Sie fest, dass es nicht vorhanden ist.

Schließlich haben wir eine Beispielverwendung definiert, die zeigt, wie man den binären Suchalgorithmus verwendet, um ein bestimmtes Element in einem geordneten Array zu finden und das Ergebnis auszugeben.

Fazit:
Der binäre Suchalgorithmus ist ein effizienter Suchalgorithmus, der zum Auffinden bestimmter Elemente in geordneten Arrays geeignet ist. Durch kontinuierliche Eingrenzung des Suchbereichs kann die binäre Suche das Zielelement schnell finden. In der tatsächlichen Entwicklung können wir binäre Suchalgorithmen für das Codedesign je nach Bedarf kombinieren, um die Sucheffizienz zu verbessern.

【Wortzahl: 451 Wörter】

Das obige ist der detaillierte Inhalt vonAnalyse des PHP-Algorithmus: Wie verwende ich den binären Suchalgorithmus, um Elemente in einem geordneten Array schnell zu finden?. 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