1. One For loop vs Multi For loop
以下為C#代碼:
public static void Main(){
var watch = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < 100000;i++){
Console.WriteLine("1 : "+i);
Console.WriteLine("2 : "+i);
Console.WriteLine("3 : "+i);
Console.WriteLine("4 : "+i);
}
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
Console.WriteLine("Total Time : "+elapsedMs);
}
所有由同一個ForLoop完成4個Console.WriteLine運作結果為 :
Total Time : 30412ms
public static void Main(){
var watch = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < 100000;i++){
Console.WriteLine("1 : "+i);
}
for(int i = 0; i < 100000;i++){
Console.WriteLine("2 : "+i);
}
for(int i = 0; i < 100000;i++){
Console.WriteLine("3 : "+i);
}
for(int i = 0; i < 100000;i++){
Console.WriteLine("4 : "+i);
}
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
Console.WriteLine("Total Time : "+elapsedMs);
}
所有由四個ForLoop完成4個Console.WriteLine運作結果為 :
Total Time : 31147ms
兩者相差只有 735ms
2. Straight For loop vs Nested For loop
以下為C#代碼:
public static void Main(){
var watch = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < 1000;i++){
for(int x = 0; x < 1000;x++){
Console.WriteLine("1 : "+i);
}
}
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
Console.WriteLine("Total Time : "+elapsedMs);
}
所有由四個ForLoop完成4個Console.WriteLine運作結果為 :
Total Time : 82723ms
public static void Main(){
var watch = System.Diagnostics.Stopwatch.StartNew();
for(int i = 0; i < 1000000;i++){
Console.WriteLine("1 : "+i);
}
watch.Stop();
var elapsedMs = watch.ElapsedMilliseconds;
Console.WriteLine("Total Time : "+elapsedMs);
}
所有由四個ForLoop完成4個Console.WriteLine運作結果為 :
Total Time : 83617ms
兩者相差只有 894ms
結論 :
雖然得出的Result相同,但不同寫法運算速度不同,只不過差異其實不大,Data Structure 以及 Algorithm還是影響較大。