So implementieren Sie einen Sortieralgorithmus in PHP: 1. Blasensortierung, zwei mal zwei vergleichen, das letzte Element in jedem Zyklus muss nicht verglichen werden 2. Auswahlsortierung, wählen Sie eines als Grundwert aus und vergleichen Sie den Rest damit. und dann die Position wechseln.
So implementieren Sie den Sortieralgorithmus in PHP:
1. Blasensortierung:
Beim Vergleich von Paaren ist es nicht erforderlich, das letzte Element in jedem Zyklus zu vergleichen, da dies bereits für das letzte Element der Fall ist been Ist das Größte oder Kleinste.
function maopaoSort ($list) { $len = count($list); for ($i = 0; $i < $len - 1; $i++) { for ($j = 0; $j < $len - $i - 1; $j++) { if ($list[$j] > $list[$j + 1]) { $tmp = $list[$j]; $list[$j] = $list[$j + 1]; $list[$j + 1] = $tmp; } } } return $list; }
2. Auswahlsortierung:
Wählen Sie einen als Grundwert aus, vergleichen Sie den Rest mit diesem und tauschen Sie dann die Positionen.
function xuanzeSort ($list) { $len = count($list); for ($i = 0; $i < $len - 1; $i++) { $pos = $i; for ($j = $i + 1; $j < $len; $j++) { if ($list[$pos] > $list[$j]) { $pos = $j; } } if ($pos != $i) { $tmp = $list[$pos]; $list[$pos] = $list[$i]; $list[$i] = $tmp; } } return $list; }
3. Schnelle Sortierung:
Das Prinzip besteht darin, einen Linealwert herauszunehmen und ihn dann in zwei Arrays, links und rechts, aufzuteilen und sie jeweils zu vergleichen
function kuaisuSort ($list) { $len = count($list); if ($len <= 1) {//递归出口 return $list; } $base = $list[0];//选择一个比较值 $leftList = $rightList = []; for ($i = 1; $i < $len; $i++) { if ($base > $list[$i]) { $leftList[] = $list[$i]; } else { $rightList[] = $list[$i]; } } //递归分别再处理左右两边的数组 $leftList = kuaisuSort($leftList); $rightList = kuaisuSort($rightList); return array_merge($leftList, [$base], $rightList); }
4 Gehen Sie davon aus, dass die vorherigen Zahlen alle der Reihe nach sortiert sind. Sie müssen die n-te Zahl in die Reihenfolge einfügen
Das obige ist der detaillierte Inhalt vonSo implementieren Sie einen Sortieralgorithmus in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!