私は、データ構造上のコースを取っていて、インストラクターが選択のために、この次のコードを与えたsort.But私が選択ソートでは、我々は配列全体をスキャンするので、それは正しくないと考え、各反復における最小の要素を見つけ、その正しい位置でスワップします。しかし、以下のコードでは毎回スワップしていますが、現在の要素よりも小さい要素が見つかります。これが正しいかどうかを教えてください。以下の選択ソートコードは正しいですか?
public static void selectionsort(int[] listtosort)
{
for (int i=0; i<listToSort.length; i++)
{
for (int j=i+1; j<listToSort.length; j++)
{
if (listToSort[i] > listToSort[j])
{
swap(listToSort, i, j);
print(listToSort);
}
}
}
}
しかし、我々は常に正しい最悪のケースでアルゴリズムのもパフォーマンスを測定する?スワップの数は、最悪の場合にはO(N^2)は、選択ソートは少ない数を持っているという事実を奪うscenario.Alsoされます挿入の並べ替えと比較したときのスワップの割合。 –
私はスワップの数が右最悪の場合はO(N^2)となります、私が言及しているコードに意味ですか?メモリに書き込みが例のフラッシュメモリのために言うように読み込むよりも高価であれば、彼らは「ビッグOのパフォーマンスしかし、スワップの数を変更いけない –
ええ権利が重要な権利になりますか? –