选择排序

function select_2($_array)
{
    for($i=0;$i<count($_array)-1;$i++)
    {   
        $key = $i; 
        for($j=$i+1;$j<count($_array);$j++)
        {
            if ($_array[$j]<$_array[$key])
            {
                $key = $j; 
            }
        }
        $tmp = $_array[$key];
        $_array[$key] = $_array[$i];
        $_array[$i] = $tmp;
    }   
    return $_array;
}

//27秒
$start = time();
print_r(select_2(rand_array(10000)));
$end = time();
echo "简单的选择排序需要的时间" . ($end - $start) . "秒;";
性能分析

  比较次数O(n^2),总的比较次数N=(n-1)+(n-2)+...+1=n*(n-1)/2。交换次数O(n),最好情况是,已经有序,交换0次;最坏情况是,逆序,交换3(n-1)次。交换次数比冒泡排序少多了,由于交换所需CPU时间比比较所需的CPU时间多,n值较小时,选择排序比冒泡排序快。 

相关文章:

  • 2022-01-08
  • 2021-10-21
  • 2021-12-02
  • 2021-06-22
  • 2021-06-27
  • 2022-01-11
猜你喜欢
  • 2021-11-24
  • 2021-12-17
  • 2021-11-27
  • 2021-10-26
  • 2021-09-30
  • 2021-11-27
  • 2021-11-27
相关资源
相似解决方案