算法复杂度的快慢
我们都知道算法复杂度通常是用输入数据的规模来衡量的。例如对于快速排序,当对N个数进行排序时,其算法复杂度为O(N*Log(N))。通常当我们看到O(2^N),O(N^2)以及O(N*Log(N))时,很自然的知道O(2^N) >> O(N^2) >> O(N*Log(N))。但他们的执行快慢区别有多大呢?下面我们一起看看下下面的表:
近似的比较各算法复杂度的执行时间, N = 100
O(Log(N)) | 10-7 seconds |
O(N) | 10-6 seconds |
O(N*Log(N)) | 10-5 seconds |
O(N2) | 10-4 seconds |
O(N6) | 3 minutes |
O(2N) | 1014 years. |
O(N!) | 10142 years. |
原文地址:http://community.topcoder.com/tc?module=Static&d1=tutorials&d2=importance_of_algorithms