Heim > Artikel > Backend-Entwicklung > PHP implementiert mehrere Sortier- und Suchalgorithmen
Blasensortierung, schnelle Sortierung und binäre Suche sind einfach, aber man vergisst sie leicht, wenn man sie eine Weile nicht verwendet. Hier ist der PHP-Implementierungscode, den der Herausgeber gefunden und mit allen geteilt hat, damit er sie gemeinsam lernen kann.
Der größte Wert erscheint jedes Mal
function bubbleSort($arr) { $count = count($arr); if ($count == 0) return false; for ($i = 0; $i < $count - 1; $i++) { for ($k = 0; $k < $count - 1 - $i; $k++) { if ($arr[$k] < $arr[$k + 1]) { $tmp = $arr[$k]; $arr[$k] = $arr[$k + 1]; $arr[$k + 1] = $tmp; } } } return $arr; }
Wählen Sie einen Wert als Benchmark. Kleinere werden links platziert, größere rechts, dann rekursiv nach links und rechts und schließlich zusammengeführt
function quickSort($arr) { $count = count($arr); if ($count <= 1) return $arr; $base = $arr[0]; $left = $right = []; for ($i = 1; $i < $count; $i++) { if ($arr[$i] < $base) { $left[] = $arr[$i]; } else { $right[] = $arr[$i]; } } $left = quickSort($left); $right = quickSort($right); return array_merge($left, [$base], $right); }
Wählen Sie einen Wert aus, von dem angenommen wird, dass er der kleinste ist , und dann der Reihe nach vergleichen. Wenn Sie feststellen, dass es kleiner als er ist, tauschen Sie die Positionen aus
function selectSort($arr) { $count = count($arr); if ($count <= 1) return $arr; for ($i = 0; $i < $count; $i++) { //假设最小值位置 $p = $i; //用假设的最小值$arr[$p]轮流比较,发现比他小的就互换 for ($j = $i + 1; $j < $count; $j++) { if ($arr[$p] > $arr[$j]) { $p = $j; } } if ($p != $i) { $tmp = $arr[$p]; $arr[$p] = $arr[$i]; $arr[$i] = $tmp; } } return $arr; }
Die binäre Suche muss ein sortiertes Array sein, und Jedes Mal wird der Wert in der mittleren Position des Arrays genommen und der Zielvergleich
function binarySearch(array $arr, $target) { $low = 0; $high = count($arr) - 1; while ($low <= $high) { $middle = floor(($high + $low) / 2); if ( $arr[$middle] == $target ) { return $middle; } elseif ( $arr[$middle] < $target ) { $low = $middle + 1; } else { $high = $middle - 1; } } return false; }
Empfohlenes Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonPHP implementiert mehrere Sortier- und Suchalgorithmen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!