[karen@work a8]$ javac Q.java [karen@work a8]$ java Q Timing quadratic Input=850 Average execution time (in milliseconds)=105 Input=1400 Average execution time (in milliseconds)=254 Input=2000 Average execution time (in milliseconds)=517 Input=2900 Average execution time (in milliseconds)=1086 Timing nlogn Input=19000 Average execution time (in milliseconds)=107 Input=44000 Average execution time (in milliseconds)=261 Input=84000 Average execution time (in milliseconds)=532 Input=150000 Average execution time (in milliseconds)=1009 Timing linear Input=400000 Average execution time (in milliseconds)=100 Input=1000000 Average execution time (in milliseconds)=247 Input=2000000 Average execution time (in milliseconds)=492 Input=4000000 Average execution time (in milliseconds)=978
100ms | 250ms | 500ms | 1000ms | ||
Linear | Time | 100 | 247 | 492 | 978 |
N | 400000 | 1000000 | 2000000 | 4000000 | |
NlogN | Time | 107 | 261 | 532 | 1009 |
N | 19000 | 44000 | 84000 | 150000 | |
Quadratic | Time | 105 | 254 | 517 | 1086 |
N | 850 | 1400 | 2000 | 2900 |
runningTime(n) = An + B; 247 = 1000000 A + B => B = 247 - 1000000 A 978 = 4000000 A + BSubstituting the first equation into the second:
978 = 4000000 A - 1000000 A + 247 978 - 247 = 3000000 A 731/3000000 = A A = 0.00025 B = -3.3 runningTime(n) = 0.00025 n - 3.3 -7 runningTime(98000) = 20 milliseconds or 2.4 * 10 days
NLogN
Substituting 1 pair of values into the equation
runningTime(n) = A * n * log (n) 2 261 = A * 44000 * log (44000) 2 A = 261/(44000 * 15.4) = 0.00039 (Just to confirm the previous result, we try another pair of values.) 1009 = A * 150000 * log (150000); 2 A = 0.00039 runningTime(n) = 0.00039 * n * log (n) 2 runningTime(98000) = 633.7 milliseconds or 0.000007 days
Quadratic
Substituting the last 3 pairs of values into the equation
2 runningTime(n)=An + Bn + C 254 = A * 1960000 + B * 1400 + C 517 = A * 4000000 + B * 2000 + C 1086 = A * 8410000 + B * 2900 + C 2 runningTime(n) = 349/2700000 * n - 31/27000 * n + 61/27; runningTime(98000) = 1,241,296 milliseconds or 0.014 days