算法的時間復雜度怎么計算 如何計算一個算法的時間復雜度和空間復雜度?
如何計算一個算法的時間復雜度和空間復雜度?它是根據(jù)一個程序的數(shù)據(jù)n的大小來顯示它所使用的時間和空間的近似值說白了,它是顯示時間或空間是如何隨著n的增長而增長的例如for(int i=0 i這個循環(huán)執(zhí)行
如何計算一個算法的時間復雜度和空間復雜度?
它是根據(jù)一個程序的數(shù)據(jù)n的大小來顯示它所使用的時間和空間的近似值
說白了,它是顯示時間或空間是如何隨著n的增長而增長的
例如
for(int i=0 i
這個循環(huán)執(zhí)行了n次,所以時間復雜度是O(n)
for(int i=0 i
{
for(int j)=0j
}]這個嵌套的兩個循環(huán),時間復雜度是O(n^2)
時間復雜度只能粗略地表示所用的時間
而且一些基本步驟的運行時間是不同的,所以我們無法計算,所以我們省略了
例如
for(int i=0I
a=b
和
for(int i=0I
)的運行時間當然是第二快的,但是它們的時間復雜度是相同的,時間復雜度是指執(zhí)行一個算法所需的計算量。時間復雜度是一個函數(shù),它定性地描述了算法的運行時間。這是表示算法輸入值的字符串長度的函數(shù)。時間復雜度通常用大的o符號表示,不包括該函數(shù)的低階項和第一項系數(shù)。2空間復雜度是指執(zhí)行算法所需的內(nèi)存空間??臻g復雜度需要考慮在運行過程中為局部變量分配的存儲空間大小,它包括兩部分:為參數(shù)表中的形式參數(shù)變量分配的存儲空間和為函數(shù)體中定義的局部變量分配的存儲空間??臻g復雜度是算法在運行過程中臨時占用的存儲空間量的度量,表示為s(n)=O(f(n))。例如,直接插入排序的時間復雜度為O(n^2),空間復雜度為O(1)。