私のコードでは、私は挿入の並べ替えと選択ソートの比較をカウントし、時間をスワップします。しかし、私は彼らが比較とスワップで同等であることを見ました。 しかし、whileループを挿入に使用しました。そして私は選択のためのループのために使用することができます。 コードを見てください。挿入と選択ソートの比較とスワップ時間が等しいか?
<?php
$a = array(4,1,7,9,3,2,6,8,10,20,14,29,54,27,563,4,563,334,2,7,5,42,24);
$num = sizeof($a);
for ($i=0; $i < $num; $i++) {
echo "$a[$i] | ";
}
echo "<br>";
echo "<br>Selection<br>";
//selection sort
$swap = 0;
$com = 0;
for ($inner=0; $inner < $num-1; $inner++) {
$min = $inner;
for ($i=$inner+1; $i < $num; $i++) {
if ($a[$i] < $a[$min]) {
$min = $i;
}
$com++;
}
$swap++;
$past = $a[$inner];
$a[$inner] = $a[$min];
$a[$min] = $past;
}
for ($k=0; $k < $num; $k++) {
echo "$a[$k] | ";
}
echo "Com : <span style='color:red;'>$com</span> ";
echo "Swap :<span style='color:red;'> $swap</span> ";
echo "<br>Insertion<br>";
$swap = 0;
$com = 0;
for ($out=1; $out < $num ; $out++) {
$temp = $a[$out];
for ($i=$out; $i > 0; $i--) {
if ($a[$i-1] >= $temp) {
$a[$i] = $a[$i-1];
}
$com++;
}
$a[$i] = $temp;
$swap++;
}
for ($k=0; $k < $num; $k++) {
echo "$a[$k] | ";
}
echo "Com : <span style='color:red;'>$com</span> ";
echo "Swap :<span style='color:red;'> $swap</span> ";
?>
Now。あなたはどのように私は挿入の並べ替えは、任意のsitiuationの選択ソートよりも速いと言うことができますか?彼らはいつも私のコードでeuqalされます!ありがとう
私の答えはあなたの疑問を解決しましたか? –