バブルソート機能を実行して未分類のレコード100000個をソートすると、C#またはJavaの方が速いかどうかチェックしたいと思っていました。 C#の場合Javaは、バブルソートでC#よりも実際に高速ですか?
は、私はバブルソートのためにこのコードを使用:Java用
static void sort(int[] table)
{
int n = table.Length;
do
{
for (int i = 0; i < n - 1; i++)
{
if (table[i] > table[i + 1])
{
int tmp = table[i];
table[i] = table[i + 1];
table[i + 1] = tmp;
}
}
n--;
}
while (n > 1);
}
、それはほとんど同じです:
static void sort(int[] table)
{
int n = table.length;
do
{
for (int i = 0; i < n - 1; i++)
{
if (table[i] > table[i + 1])
{
int tmp = table[i];
table[i] = table[i + 1];
table[i + 1] = tmp;
}
}
n--;
}
while (n > 1);
}
実行時間を測定するために、C#で、私はStopwatch
クラス使用:
Stopwatch sw = new Stopwatch();
sw.Start();
sort(arr);
sw.Stop();
JavaでStopwatchクラスが見つかりませんでした。このコードを使用してexecutioを測定しましたJavaでn時間:
class ExecutionTimer {
private long start;
private long end;
public ExecutionTimer() {
start = System.nanoTime();
}
public void end() {
end = System.nanoTime();
}
public float duration(){
return (end-start);
}
public void reset() {
start = 0;
end = 0;
}}
私はアルゴリズムをC#で5回、Javaで5回実行します。 C#での実行時間の平均時間は、40,13sであり、Javaでは18,44sでした。
なぜ違いが大きいのですか? C#で時間を測定するためにStopWatchを使用したからですか? テスト中にノートパソコンのすべてのプログラム、ブラウザ、ウイルス対策ソフトを終了しました。
ありがとうございます。
デバッガを接続してC#バージョンを実行しましたか? – harold
リリースモードでC#コードをコンパイルしましたか? – cHao
私はそれをデバッグモードで実行します。 – ElPolako