<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
所謂的複雜度就是衡量演演算法的效率,衡量算髮效率又分為兩種,一種叫做時間複雜度,一種叫做空間複雜度。
演演算法效率分析分為兩種:第一種是時間效率,第二種是空間效率。時間效率被稱為時間複雜度,而空間效率被 稱作空間複雜度。 時間複雜度主要衡量的是一個演演算法的執行速度,而空間複雜度主要衡量一個演演算法所需要的額 外空間,在計算機發展的早期,計算機的儲存容量很小。所以對空間複雜度很是在乎。但是經過計算機行業的 迅速發展,計算機的儲存容量已經達到了很高的程度。所以我們如今已經不需要再特別關注一個演演算法的空間復 雜度。
一個演演算法所花費的時間與其中語句的執行次數成正比例,演演算法中的基本操作的執行次數,為演演算法的時間復 雜度。也就是說當我們拿到一個程式碼,來看這個程式碼的時間複雜度的時候,主要是去找這個程式碼當中執行語句次數最多的程式碼執行了多少次。
看圖分析:
當N的值越來越大,2N和10的值就可以忽略不記了。
實際中我們計算時間複雜度時,我們其實並不一定要計算精確的執行次數,而只需要大概執行次數,那麼這裡 我們使用大O的漸進表示法。
大O符號(Big O notation):是用於描述函數漸進行為的數學符號。
1、用常數1取代執行時間中的所有加法常數。
2、在修改後的執行次數函數中,只保留最高階項。
3、如果最高階項存在且不是1,則去除與這個專案相乘的常數。得到的結果就是大O階。
通過上面我們會發現大O的漸進表示法去掉了那些對結果影響不大的項,簡潔明瞭的表示出了執行次數。
另外有些演演算法的時間複雜度存在最好、平均和最壞情況:
最壞情況:任意輸入規模的最大執行次數(上界)
平均情況:任意輸入規模的期望執行次數
最好情況:任意輸入規模的最小執行次數(下界)
例如:在一個長度為N陣列中搜尋一個資料x
最好情況:1次找到
最壞情況:N次找到
平均情況:N/2次找到
在實際中一般情況關注的是演演算法的最壞執行情況,所以陣列中搜尋資料時間複雜度為O(N)
例題1:
基本操作執行了2N+10次,通過推導大O階方法知道,時間複雜度為 O(N)
例題2:
基本操作執行了M+N次,有兩個未知數M和N,時間複雜度為 O(N+M)
例題3:
基本操作執行了100次,通過推導大O階方法,時間複雜度為 O(1)
例題4:計算氣泡排序的時間複雜度
基本操作執行最好N次,最壞執行了(N*(N-1))/2次,通過推導大O階方法+時間複雜度一般看最壞, 時間複雜度為 O(N^2
例題5:二分查詢的時間複雜度
基本操作執行最好1次,最壞O(logN)次,時間複雜度為 O(logN) ps:logN在演演算法分析中表示是底數 為2,對數為N。有些地方會寫成lgN。(建議通過摺紙查詢的方式講解logN是怎麼計算出來的)(因為二 分查詢每次排除掉一半的不適合值,一次二分剩下:n/2 兩次二分剩下:n/2/2 = n/4)
例題6:計算階乘遞迴的時間複雜度
遞迴的時間複雜度 = 遞迴的次數*每次遞迴執行的次數
通過計算分析發現基本操作遞迴了N次,時間複雜度為O(N)。
例題7:計算斐波那契遞迴的時間複雜度
通過計算分析發現基本操作遞迴了2^N次,時間複雜度為O(2^N)。
規律:
2^0+2^1+2^2+2^3……2^(n-(n-1))
等比數列求和
a1就代表第一項,q是等比就是2,1(1-2^n)/-1,相當於2^n+1,所以時間複雜度為O(2^n)
空間複雜度是對一個演演算法在執行過程中臨時佔用儲存空間大小的量度 。空間複雜度不是程式佔用了多少bytes 的空間,因為這個也沒太大意義,所以空間複雜度算的是變數的個數。空間複雜度計算規則基本跟實踐複雜度 類似,也使用大O漸進表示法。
例題1:計算氣泡排序的空間複雜度
使用了常數個額外空間,所以空間複雜度為 O(1)
例題2:計算斐波那契的空間複雜度
動態開闢了N個空間,空間複雜度為 O(N)
例題3:計算階乘遞迴的空間複雜度
遞迴呼叫了N次,開闢了N個棧幀,每個棧幀使用了常數個空間。空間複雜度為O(N)
本文簡單介紹了什麼是時間複雜度、空間複雜度,通過簡單例題的方式加深對陣列的理解。上述就是今天的內容,有任何疑問的話可以隨時私信我,文章哪裡出現了問題我都會積極改正,也希望大家能更快的掌握自己想要的知識,讓我們一起加油!!!!!
到此這篇關於Java 精煉解讀時間複雜度與空間複雜度的文章就介紹到這了,更多相關Java 時間複雜度內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45