如何寫自訂 PHP 陣列排序演算法?冒泡排序:透過比較和交換相鄰元素來排序數組。選擇排序:每次選擇最小或最大元素並與目前位置交換。插入排序:逐一插入元素到有序部分。
PHP 陣列自訂排序演算法的編寫指南
簡介
陣列排序是程式設計中一項常見任務,它允許我們根據特定標準重新組織數組中的元素。 PHP 提供了多種內建排序演算法,但有時我們需要根據自訂邏輯對陣列進行排序,這就需要我們編寫自己的自訂排序演算法。
冒泡排序
冒泡排序是一種簡單的排序演算法,它透過重複比較相鄰元素並交換它們的位置來對陣列進行排序。
function bubbleSort(array &$arr) { $n = count($arr); for ($i = 0; $i < $n - 1; $i++) { for ($j = 0; $j < $n - $i - 1; $j++) { if ($arr[$j] > $arr[$j + 1]) { $tmp = $arr[$j]; $arr[$j] = $arr[$j + 1]; $arr[$j + 1] = $tmp; } } } }
選擇排序
選擇排序是一種基於選擇最小或最大元素並將其與目前位置交換的排序演算法。
function selectionSort(array &$arr) { $n = count($arr); for ($i = 0; $i < $n - 1; $i++) { $min_idx = $i; for ($j = $i + 1; $j < $n; $j++) { if ($arr[$j] < $arr[$min_idx]) { $min_idx = $j; } } $tmp = $arr[$i]; $arr[$i] = $arr[$min_idx]; $arr[$min_idx] = $tmp; } }
插入排序
插入排序是一種基於逐一插入元素到有序部分的排序演算法。
function insertionSort(array &$arr) { $n = count($arr); for ($i = 1; $i < $n; $i++) { $key = $arr[$i]; $j = $i - 1; while ($j >= 0 && $arr[$j] > $key) { $arr[$j + 1] = $arr[$j]; $j--; } $arr[$j + 1] = $key; } }
實戰案例
讓我們使用冒泡排序演算法按升序對以下PHP 陣列進行排序:
$arr = [5, 2, 8, 3, 1];
呼叫冒泡排序函數:
bubbleSort($arr);
排序後的陣列:
[1, 2, 3, 5, 8]
以上是PHP 數組自訂排序演算法的編寫指南的詳細內容。更多資訊請關注PHP中文網其他相關文章!