Heim >Backend-Entwicklung >PHP-Tutorial >Ausführliche Erklärung von zwei Beispielen für schnelle Sortieralgorithmen in PHP

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

怪我咯
怪我咯Original
2017-07-04 14:56:241165Durchsuche

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;
  }
}


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;
}

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!

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