Heim >Backend-Entwicklung >PHP-Tutorial >Schnelle Sortierung durch PHP-Rekursionsmethode implementiert

Schnelle Sortierung durch PHP-Rekursionsmethode implementiert

墨辰丷
墨辰丷Original
2018-06-13 11:54:063108Durchsuche

In diesem Artikel werden hauptsächlich zwei Beispiele für schnelle Sortieralgorithmen in PHP vorgestellt. Dieser Artikel gibt direkt den Implementierungscode an, der mit der rekursiven Methode bzw. der iterativen Methode implementiert wird

Obwohl in PHP solche Webanwendungen entwickelt werden, legen wir nicht allzu viel Wert auf die Bedeutung der Sortierung, da PHP selbst bereits über leistungsstarke Sortierfunktionen wie sort() verfügt. In einigen wichtigen Fällen, z Gelegentlich möchte ich Sortieralgorithmen verwenden. Die Auswirkungen können nicht ignoriert werden. 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:

/**
* 迭代法的快速排序
*/
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;
}

Verwendung:

/**
*产生一个随机数组
*/
for($i=0;$i<5;$i++){
  $testArr[]=mt_rand(0,100);
}
var_dump($testArr);
var_dump(quicksort($testArr));

var_dump(quicksortx($testArr));

Zusammenfassung: Das Obige ist der gesamte Inhalt dieses Artikels, ich hoffe, dass er für das Studium aller hilfreich sein wird.

Verwandte Empfehlungen:

PHP-Implementierung von Methoden zum Hochladen von Bildern auf Client- und Serverseite

PHP-Code-Implementierung zur Steuerung des Dateidownloads Geschwindigkeit

php verwendet ein Array, um das Dropdown-Listenfeld zu füllen

Das obige ist der detaillierte Inhalt vonSchnelle Sortierung durch PHP-Rekursionsmethode implementiert. 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