选择排序是最容易理解的一个排序算法了,它的思路是这样的:从待排序列找到最小的,将最小值从待排序列移除,重复上述两步直到排好序。

static public function selectSort(&$arr){
    if(!is_array($arr)){
        return false;
    }
    $len = count($arr);
    for($i=0;$i<$len;$i++){
        $item = $arr[$i];
        $index = $i;
        for($j=$i+1;$j<$len;$j++){
            if($arr[$j]<$item){
                $index = $j;
                $item = $arr[$j];
            }
        }
        self::_swap($arr,$i,$index);
    }
    return true;
}

这个算法时间复杂度为O(n^2)。

results matching ""

    No results matching ""