时间复杂度
计算机科学概念 / 維基百科,自由的 encyclopedia
親愛的 Wikiwand AI, 讓我們通過簡單地回答這些關鍵問題來保持簡短:
你能列出最重要的事實和統計數據嗎 时间复杂度?
為 10 歲的孩子總結這篇文章
顯示所有問題
在计算机科学中,算法的时间复杂度(time complexity)是一个函数,它定性描述该算法的运行时间。这是一个代表算法输入值的字符串的长度的函数。时间复杂度常用大O符号表述,不包括这个函数的低阶项和首项系数。使用这种方式时,时间复杂度可被称为是渐近的,亦即考察输入值大小趋近无穷时的情况。例如,如果一个算法对于任何大小为 n (必須比 n0 大)的输入,它至多需要 5n3 + 3n 的时间运行完毕,那么它的渐近时间复杂度是 O(n3)。
為了計算時間複雜度,我們通常會估計算法的操作單元數量,每個單元執行的時間都是相同的。因此,總運行時間和算法的操作單元數量最多相差一个常量系数。
相同大小的不同輸入值仍可能造成算法的執行時間不同,因此我們通常使用算法的最壞情況複雜度(英语:Worst-case complexity),記為 T(n) ,定義為任何大小的輸入 n 所需的最大執行時間。另一種較少使用的方法是平均情況複雜度(英语:average-case complexity),通常有特別指定才會使用。時間複雜度可以用函數 T(n) 的自然特性加以分類,舉例來說,有著 T(n) = O(n) 的算法被稱作「線性時間算法」;而 T(n) = O(Mn) 和 Mn= O(T(n)) ,其中 M ≥ n > 1 的算法被稱作「指數時間算法」。