アルゴリズムの概要-ソートの選択
3191 ワード
ソートの選択
比較回数O(n^2)、総比較回数N=(n-1)+(n-2)+...+1=n*(n-1)/2.交換回数O(n)、最良の場合は、すでに秩序化され、0回交換されている.最悪の場合,逆シーケンス,交換3(n−1)回である.交換回数はバブルソートよりも少なく,交換に必要なCPU時間は比較に必要なCPU時間よりも多く,n値が小さいため,選択ソートはバブルソートよりも速い.
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値が小さいため,選択ソートはバブルソートよりも速い.