c语言编程笔录

首页 >   > 笔记大全

笔记大全

使用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位置的元素进行交换。

最后,返回已排序的数组。

总结

直接选择排序算法是一种简单但有效的排序算法。它通过不断选择最小(或最大)的元素来构建有序序列,并将这个元素放到已排序序列的末尾。