平均時間複雜度是指所有可能的輸入例項均以等機率出現的情況下,該演算法的執行時間。 最壞情況下的時間複雜度稱最壞時間複雜度。一般討論的時間複雜度均是最壞情況下的時間複雜度。 這樣做的原因是:最壞情況下的時間複雜度是演算法在任何輸入例項上執行時間的界限,這就保證了演算法的執行時間不會比最壞情況更長。 平均時間複雜度和最壞時間複雜度是否一致,和演算法有關(如圖:)。
基本介紹
類似於時間複雜度的討論,一個演算法的空間複雜度(Space Complexity
)定義為該演算法所耗費的儲存空間,它也是問題規模n的函式。 空間複雜度(Space Complexity
)是對一個演算法在執行過程中臨時佔用儲存空間大小的量度。有的演算法需要佔用的臨時工作單元數與解決問題的規模n有關,它隨著n
的增大而增大,當n
較大時,將佔用較多的儲存單元,例如快速排序和歸併排序演算法就屬於這種情況 在做演算法分析時,主要討論的是時間複雜度。從使用者使用體驗上看,更看重的程式執行的速度。一些快取產品(redis, memcache
)和演算法(基數排序)本質就是用空間換時間.
使用者也不知道你的程式他用了多少空間
本作品採用《CC 協議》,轉載必須註明作者和本文連結