PHP实现简单选择排序

来源:互联网 发布:画系统流程图的软件 编辑:程序博客网 时间:2024/06/05 23:45

选择排序的思想其实和冒泡排序有点类似,都是在一次排序后把最小的元素放到最前面。但是过程不同,冒泡排序是通过相邻的比较和交换。而选择排序是通过对整体的选择。

平均时间复杂度O(n2),空间复杂度O(1)。

//简单选择排序是不稳定排序//交换函数function swap(array &$arr,$a,$b){    $temp = $arr[$a];    $arr[$a] = $arr[$b];    $arr[$b] = $temp;}function SelectSort(array &$arr){    $count = count($arr);    for($i = 0; $i < $count - 1; $i ++){        //记录第$i个元素后的所有元素最小值下标        $min = $i;        for($j = $i + 1; $j < $count; $j ++){            if($arr[$j] < $arr[$min]){                $min = $j;            }        }        if($min != $i){            swap($arr,$min,$i);        }    }}$arr = array(9,1,5,8,3,7,4,6,2);SelectSort($arr);print_r($arr);