Heim >Backend-Entwicklung >PHP-Tutorial >PHP-Schnellsortierungsprinzip, Implementierungsmethode und Beispielanalyse

PHP-Schnellsortierungsprinzip, Implementierungsmethode und Beispielanalyse

墨辰丷
墨辰丷Original
2018-06-02 10:00:021403Durchsuche

In diesem Artikel werden hauptsächlich das Prinzip und die Implementierungsmethode der PHP-Schnellsortierung vorgestellt und das Algorithmusprinzip und die spezifischen Implementierungstechniken der PHP-Schnellsortierung anhand von Beispielen analysiert

Die Details lauten wie folgt:

<?php
$n = array(&#39;13&#39;,&#39;14&#39;,&#39;55&#39;,&#39;10&#39;,&#39;54&#39;,&#39;2&#39;,&#39;79&#39;,&#39;106&#39;,&#39;89&#39;,&#39;90&#39;,&#39;22&#39;,&#39;60&#39;,&#39;111&#39;,&#39;77777&#39;,&#39;-110&#39;,&#39;-10&#39;,&#39;123&#39;);
function partition($n,$left,$right)
{
  global $n;
  $pivot = $n[$left];
  $lo=$left;
  $hi=$right+1;
  while($lo+1!=$hi) {
    if($n[$lo+1]<$pivot)
      $lo++;
    else if($n[$hi-1]>$pivot)
      $hi--;
    else{
      $t=$n[$lo+1];
      $n[$lo+1]=$n[$hi-1];
      $n[$hi-1]=$t;
      $lo++;
      $hi--;
    }
  }
  $n[$left]=$n[$lo];
  $n[$lo]=$pivot;
  return $lo;
}
function quicksort($n,$left,$right)
{
  global $n;
  $dp = 0;
  if ($left<$right) {
     $dp=partition($n,$left,$right);
     quicksort($n,$left,$dp-1);
     quicksort($n,$dp+1,$right);
  }
}
quicksort($n,0,sizeof($n)-1);
print_r($n);
?>

Schnellsortierung ist eine Verbesserung gegenüber der Blasensortierung. Seine Grundidee besteht darin, die zu sortierenden Daten durch Einwegsortierung in zwei unabhängige Teile aufzuteilen. Alle Daten in einem Teil sind kleiner als alle Daten im anderen Teil, und dann werden die beiden Teile der Daten nacheinander sortiert. Für eine schnelle Sortierung kann der gesamte Sortiervorgang rekursiv durchgeführt werden, sodass die gesamten Daten zu einer geordneten Sequenz werden.

Unter der Annahme, dass das zu sortierende Array A[1]...A[N] ist, wählen Sie zunächst zufällig Daten (normalerweise die ersten Daten) als Schlüsseldaten aus und geben Sie dann alle Zahlen ein, die kleiner als diese sind Davor werden alle Zahlen, die größer sind als sie, dahinter platziert. Dieser Vorgang wird als schnelle Sortierung mit einer Position bezeichnet. Der Algorithmus für die schnelle Sortierung lautet:

1). , das Element ist X zugewiesen, also ein Wert kleiner als Exchange
5), wiederholen Sie die Schritte 3 und 4, bis I=J; Datensequenz mit 49 als Mittelpunkt und trennen Sie den vorherigen Teil. Führen Sie eine schnelle Sortierung ähnlich dem letzten Teil durch, um die schnelle Sortierung aller Datensequenzen abzuschließen, und wandeln Sie diese Datensequenz schließlich in eine geordnete Sequenz um

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er kann jedem beim Lernen helfen.

Verwandte Empfehlungen:

php

Detaillierte Erläuterung der WeChat-Entwicklungszugriffsbeispiele

php Detaillierte Erläuterung des WeChat-Entwicklungszugriffsbeispiels

PHP+MySQL realisiert die Fuzzy-Abfrage der Mitarbeiterinformationsfunktion

Das obige ist der detaillierte Inhalt vonPHP-Schnellsortierungsprinzip, Implementierungsmethode und Beispielanalyse. 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