Heim >Backend-Entwicklung >PHP-Tutorial >So schreiben Sie einen Heap-Sortieralgorithmus mit PHP
So schreiben Sie einen Heap-Sortieralgorithmus mit PHP
Heap-Sortierung ist ein effizienter Sortieralgorithmus. Seine Kernidee besteht darin, die zu sortierende Sequenz in einen binären Heap zu konstruieren und dann die Struktur des Heaps kontinuierlich anzupassen, um eine Sortierung zu erreichen. In diesem Artikel wird das Schreiben eines Heap-Sortieralgorithmus mit PHP vorgestellt und Codebeispiele als Referenz bereitgestellt.
Das Folgende ist ein Beispiel für eine in PHP implementierte Heap-Anpassungsfunktion:
function heapify(&$arr, $n, $i) { $largest = $i; // 将当前节点标记为最大值节点 $l = 2 * $i + 1; // 左子节点 $r = 2 * $i + 2; // 右子节点 // 如果左子节点大于根节点 if ($l < $n && $arr[$l] > $arr[$largest]) { $largest = $l; } // 如果右子节点大于根节点 if ($r < $n && $arr[$r] > $arr[$largest]) { $largest = $r; } // 如果最大值不等于当前节点,则交换它们的位置 if ($largest != $i) { $temp = $arr[$i]; $arr[$i] = $arr[$largest]; $arr[$largest] = $temp; // 递归调整交换之后的子树 heapify($arr, $n, $largest); } }
Das Folgende ist ein Beispiel für eine in PHP implementierte Heap-Sortierfunktion:
function heapSort(&$arr) { $n = count($arr); // 构建最大堆 for ($i = ($n / 2) - 1; $i >= 0; $i--) { heapify($arr, $n, $i); } // 排序 for ($i = $n - 1; $i > 0; $i--) { // 交换堆顶和最后一个元素 $temp = $arr[0]; $arr[0] = $arr[$i]; $arr[$i] = $temp; // 调整剩余元素的顺序 heapify($arr, $i, 0); } }
$arr = [3, 7, 2, 11, 1, 9, 6, 4, 8]; echo "排序前:" . implode(", ", $arr) . " "; heapSort($arr); echo "排序后:" . implode(", ", $arr) . " ";
Wenn Sie den obigen Code ausführen, erhalten Sie die folgende Ausgabe:
排序前:3, 7, 2, 11, 1, 9, 6, 4, 8 排序后:1, 2, 3, 4, 6, 7, 8, 9, 11
Auf diese Weise haben wir den Heap-Sortieralgorithmus mit PHP erfolgreich geschrieben und angewendet .
Zusammenfassung:
Heap-Sortierung ist ein effizienter Sortieralgorithmus, der die Sortierung durch Aufbau eines maximalen (oder minimalen) Heaps implementiert. Durch Anpassen der Struktur des Heaps können wir die Heap-Sortierung problemlos implementieren. Das Schreiben eines Heap-Sortieralgorithmus mit PHP ist relativ einfach. Sie müssen lediglich eine Heap-Anpassungsfunktion und eine Heap-Sortierfunktion schreiben und das zu sortierende Array als Parameter übergeben, um eine Sortierung zu erreichen. Ich hoffe, dass der Inhalt dieses Artikels Ihnen dabei helfen kann, den Heap-Sortieralgorithmus zu verstehen und zu verwenden.
Das obige ist der detaillierte Inhalt vonSo schreiben Sie einen Heap-Sortieralgorithmus mit PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!