【数据结构】之算法效率的度量
生活随笔
收集整理的這篇文章主要介紹了
【数据结构】之算法效率的度量
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
算法效率的度量
算法效率的度量是通過時間復雜度和空間復雜度來描述的。
時間復雜度
一個語句的頻度是指該語句在算法中被重復執行的次數。算法中所有語句的頻度之和記為T(n)
算法的時間復雜度記為 T(n)= O(fn))
復雜度分析法則
1)單段代碼看高頻:比如循環。
2)多段代碼取最大:比如一段代碼中有單循環和多重循環,那么取多重循環的復雜度。
3)嵌套代碼求乘積:比如遞歸、多重循環等
4)多個規模求加法:比如方法有兩個參數控制兩個循環的次數,那么這時就取二者復雜度相加。
時間復雜度規則
a)加法規則
多項相加,只保留最高階的項,且系數變為1.
b)乘法規則
多項相乘,都保留。
空間復雜度
表示算法的存儲空間與數據規模之間的增長關系。
void print(int n) {int i=0;int[] a = new int[n];for (i; i <n; ++i) {a[i] =i* i;}for(i=n-1;i>=0;--i){print out a[i]} }跟時間復雜度分析一樣,我們可以看到,第2行代碼中,我們申請了一個空間存儲變量i,但是它是常最階的,跟數據規模n沒有關系,所以我們可以忽略。
第3行申請了一個大小為n的int類型數組,除此之外,剩下的代碼都沒有占用更多的空間,所以整段代碼的空間復雜度就是O(n)。
我們常見的空間復雜度就是O(1)、O(n)、 O(n2), 像O(logn)、O(nlogn) 這樣的對數階復雜度平時都用不到。而且,空間復雜度分析比時間復雜度分析要簡單很多。
總結
以上是生活随笔為你收集整理的【数据结构】之算法效率的度量的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【数据结构】之算法和算法评价
- 下一篇: c语言学习之用筛选法求100之内的素数。