Ausführliche Erklärung von zwei Beispielen für schnelle Sortieralgorithmen in PHP

怪我咯
Freigeben: 2023-03-12 16:30:02
Original
1146 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich zwei Beispiele für schnelle Sortieralgorithmen in PHP vorgestellt. Dieser Artikel gibt direkt den Implementierungscode an, auf den sich Freunde in Not beziehen können 🎜>Obwohl wir bei der Entwicklung von Webanwendungen wie PHP die Bedeutung des Sortierens nicht zu sehr betonen, da PHP selbst bereits über leistungsstarke Sortierfunktionen wie sort() verfügt, sind diese in einigen wichtigen Fällen, z -Parallelität In diesem Fall denke ich, dass die Auswirkungen des Sortieralgorithmus nicht ignoriert werden können. Hier stellen wir die rekursive Sortierung und die iterative Sortierung vor.

Rekursive Methode

:

/**
* 递归法实现的快速排序
*/
function quicksort($seq)
{
    $k = $seq[0];
    $x = array();
    $y = array();
    for($i=1; $i< $_size; $i++) {
      if($seq[$i] <= $k) {
        $x[] = $seq[$i];
      } else {
        $y[] = $seq[$i];
      }
    }
    $x = quicksort($x);
    $y = quicksort($y);
    return array_merge($x, array($k), $y);
  } else {
    return $seq;
  }
}
Nach dem Login kopieren


Iterative Methode:


Verwendung:
/**
* 迭代法的快速排序
*/
function quicksortx(&$seq)
{
  $stack = array($seq);
  $sort = array();
  while ($stack) {
    $arr = array_pop($stack);
    if(count($arr) <= 1) {
      if(count($arr) == 1) {
        $sort[] = &$arr[0];
      }
      continue;
    }
    $k = $arr[0];
    $x = array();
    $y = array();
    $_size = count($arr);
    for($i =1 ;$i < $_size; $i++) {
      if($arr[$i] <= $k) {
        $x[] = &$arr[$i];
      } else {
        $y[] = &$arr[$i];
      }
    }
    !empty($y) && array_push($stack, $y);
    array_push($stack, array($arr[0]));
    !empty($x) && array_push($stack, $x);
  }
  return $sort;
}
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonAusführliche Erklärung von zwei Beispielen für schnelle Sortieralgorithmen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!