Heim  >  Artikel  >  Backend-Entwicklung  >  Wie führe ich einen Sortieralgorithmus und einen Suchalgorithmus in PHP durch?

Wie führe ich einen Sortieralgorithmus und einen Suchalgorithmus in PHP durch?

WBOY
WBOYOriginal
2023-05-20 16:32:021283Durchsuche

PHP verfügt als häufig verwendete Programmiersprache über viele integrierte Sortier- und Suchalgorithmen, die Entwicklern dabei helfen, große Datenmengen effizienter zu verarbeiten. In diesem Artikel werden einige gängige Sortier- und Suchalgorithmen vorgestellt und deren Verwendung in PHP erläutert.

1. Sortieralgorithmus

  1. Bubble Sort ist ein grundlegender Sortieralgorithmus. Sein Prinzip besteht darin, benachbarte Elemente paarweise zu vergleichen und Positionen entsprechend der Größenbeziehung zu tauschen, wodurch der Zweck der Sortierung erreicht wird. Die spezifische Implementierungsmethode lautet wie folgt:
  2. function bubbleSort($arr) {
        $len = count($arr);
    
        for ($i = 0; $i < $len - 1; $i++) {
            for ($j = 0; $j < $len - $i - 1; $j++) {
                if ($arr[$j] > $arr[$j + 1]) {
                    $temp = $arr[$j];
                    $arr[$j] = $arr[$j + 1];
                    $arr[$j + 1] = $temp;
                }
            }
        }
    
        return $arr;
    }

Schnellsortierung

  1. Schnellsortierung ist ein häufig verwendeter Sortieralgorithmus. Sein Prinzip besteht darin, einen Benchmark-Wert auszuwählen und das zu sortierende Array in zwei Kategorien zu unterteilen: diejenigen, die kleiner als der Benchmark sind Wert und diejenigen, die größer als der Benchmark-Wert sind, und führen Sie dann eine schnelle Sortierung für die beiden Teile durch und führen Sie schließlich die Ergebnisse zusammen, um die Sortierung abzuschließen. Die spezifische Implementierungsmethode lautet wie folgt:
  2. function quickSort($arr) {
        if (count($arr) < 2) {
            return $arr;
        }
    
        $pivot = $arr[0];
        $left = $right = [];
    
        for ($i = 1; $i < count($arr); $i++) {
            if ($arr[$i] < $pivot) {
                $left[] = $arr[$i];
            } else {
                $right[] = $arr[$i];
            }
        }
    
        return array_merge(quickSort($left), [$pivot], quickSort($right));
    }

Merge-Sortierung

  1. Merge-Sortierung ist ein klassischer Sortieralgorithmus. Sein Prinzip besteht darin, das zu sortierende Array kontinuierlich in kleinere Unterarrays aufzuteilen, bis jedes Unterarray nur noch ein Element enthält , und dann werden zwei benachbarte Unterarrays kombiniert und entsprechend der Größenbeziehung sortiert, und dieser Vorgang wird wiederholt, bis das gesamte Array sortiert ist. Die spezifische Implementierungsmethode ist wie folgt:
  2. function mergeSort($arr) {
        if (count($arr) < 2) {
            return $arr;
        }
    
        $mid = floor(count($arr) / 2);
        $left = array_slice($arr, 0, $mid);
        $right = array_slice($arr, $mid);
    
        return merge(mergeSort($left), mergeSort($right));
    }
    
    function merge($left, $right) {
        $result = [];
    
        while (count($left) && count($right)) {
            if ($left[0] <= $right[0]) {
                $result[] = array_shift($left);
            } else {
                $result[] = array_shift($right);
            }
        }
    
        while (count($left)) {
            $result[] = array_shift($left);
        }
    
        while (count($right)) {
            $result[] = array_shift($right);
        }
    
        return $result;
    }
2. Suchalgorithmus

Sequentielle Suche

  1. Die sequentielle Suche wird auch als lineare Suche bezeichnet. Ihr Prinzip besteht darin, mit dem ersten Element des zu durchsuchenden Arrays zu beginnen und jedes zu vergleichen Element nacheinander, um zu sehen, ob es dem Zielwert entspricht, bis der Zielwert gefunden oder das Ende des Arrays durchsucht wird. Die spezifische Implementierungsmethode lautet wie folgt:
  2. function linearSearch($arr, $target) {
        $len = count($arr);
    
        for ($i = 0; $i < $len; $i++) {
            if ($arr[$i] == $target) {
                return $i;
            }
        }
    
        return -1;
    }

Binäre Suche

  1. Die binäre Suche wird auch als halbe Suche bezeichnet. Ihr Prinzip besteht darin, den Suchbereich kontinuierlich auf den linken und rechten Teil eines geordneten Arrays zu reduzieren und den Mittelwert zu finden Wenn der Zwischenwert jedes Mal größer als der Zielwert ist, wird in der linken Hälfte weiter gesucht, andernfalls wird in der rechten Hälfte weiter gesucht, bis der Zielwert gefunden wird oder der Suchbereich leer ist. Die spezifische Implementierungsmethode lautet wie folgt:
  2. function binarySearch($arr, $target) {
        $low = 0;
        $high = count($arr) - 1;
    
        while ($low <= $high) {
            $mid = floor(($low + $high) / 2);
            if ($arr[$mid] < $target) {
                $low = $mid + 1;
            } else if ($arr[$mid] > $target) {
                $high = $mid - 1;
            } else {
                return $mid;
            }
        }
    
        return -1;
    }
3. Zusammenfassung

In diesem Artikel werden gängige Sortieralgorithmen und Suchalgorithmen vorgestellt und Beispielcode für die Implementierung dieser Algorithmen in PHP bereitgestellt. Obwohl PHP über viele integrierte Sortier- und Suchfunktionen verfügt, kann das Verständnis dieser Algorithmen dazu beitragen, Ihr Verständnis von Datenstrukturen und Algorithmen zu vertiefen und Ihre Programmierkenntnisse zu verbessern. Gleichzeitig können wir in der tatsächlichen Entwicklung den am besten geeigneten Algorithmus entsprechend den spezifischen Anforderungen auswählen, um die Effizienz und Qualität des Codes zu verbessern.

Das obige ist der detaillierte Inhalt vonWie führe ich einen Sortieralgorithmus und einen Suchalgorithmus in PHP durch?. 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