使用PHP如何实现一个直接选择排序算法
更新时间:2023-06-30介绍
直接选择排序算法是一种简单直观的排序算法。它的基本思想是每次从待排序的序列中选择最小(或最大)的元素,放到已排序的序列的末尾,直到全部元素排序完成。
算法实现
function selectionSort($arr) { $len = count($arr); for ($i = 0; $i < $len-1; $i++) { $minIndex = $i; for ($j = $i+1; $j < $len; $j++) { if ($arr[$j] < $arr[$minIndex]) { $minIndex = $j; } } if ($minIndex != $i) { $temp = $arr[$i]; $arr[$i] = $arr[$minIndex]; $arr[$minIndex] = $temp; } } return $arr; } $arr = [5, 2, 9, 1, 3]; $result = selectionSort($arr); print_r($result);
代码解释
首先,创建一个名为selectionSort
的函数,接收一个数组参数。函数内部使用一个嵌套循环来实现选择排序的核心逻辑。
外层循环变量$i
代表已排序序列的末尾,每次迭代时$i
增加1。内层循环变量$j
从$i+1
开始遍历未排序的部分,找出其中最小的元素。
如果找到了比当前最小值更小的元素,则更新最小值的索引$minIndex
。内层循环结束后,将最小值与$i
位置的元素进行交换。
最后,返回已排序的数组。
总结
直接选择排序算法是一种简单但有效的排序算法。它通过不断选择最小(或最大)的元素来构建有序序列,并将这个元素放到已排序序列的末尾。