日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

【科普】五分钟快速了解代码复杂度

發布時間:2025/3/12 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 【科普】五分钟快速了解代码复杂度 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

所謂的代碼復雜度,就是”快“和”省“的問題,快就是代碼算法運行的時間短,省就是代碼算法使用的內存少,也就是說,衡量代碼執行效率,主要有兩個維度,時間、空間復雜度

大 O 復雜度表示法

如何在不運行代碼的情況下,通過”肉眼“計算出一段代碼的執行時間

一段簡單的 Python 代碼,求1,2,3…n的累加和

1def?cal(n): 2??sum?=?0 3??for?i?in?range(n): 4????sum?+=?i 5??return?sum

對于上面的一段簡單代碼,我們輸入不同的 n 值,來看一下代碼執行的效果

n = 5

n = 10

其實上面的代碼實在是簡單,不用說也知道 n 不同時,代碼的執行過程是怎樣的

而我們這里要關注的重點是代碼的3、4行,當 n = 5 時,3、4行代碼執行了5遍,當 n = 10 時,又執行了10遍,其實我們依次類推可以知道,3、4行代碼永遠都是執行 n 遍,那么此時對于上面代碼的時間復雜度 T(n),我們就可以表示為

T(n) = O(n)

這就是我們常常說的大 O 表示法

當然了,通過上面的描述,還是有一些抽象的,下面我們再通過一個小栗子來看一下

查找文件

比如我這里整理的編程類資源

經過多年的努力,終于學(收)會(集)了圖中的所有知識,那么如果某一天,我想寫一段代碼來查找 Dubbo 教程,應該如何實現呢

方法1

依次一個一個的查找

實現代碼為

1def?find_source(source_list,?name): 2????for?i?in?source_list: 3????????if?i?==?name: 4????????????return?i

這樣我們需要一直循環到文件夾26才可以找到 Dubbo 資源,當資源少的時候還可以如果是海量資源,那么效率太低了

方法2

從中間開始找,如果發現小了,就把左邊的都去掉,再在剩下的文件中往中間開始找,以此類推

這樣的二分查找,我們只需要在第五次查找的時候就拿到想要的資源

1def?find_source(source_list,?name):2????min?=?03????ma?=?len(source_list)-14????while?min?<=?max:5????????mid?=?(min+max)/26????????if?source_list[mid]?==?name:7????????????return?"get?source?at?%s"?%?mid8????????if?source_list[mid]?<?name:9????????????min?=?mid?+?1 10????????else: 11????????????max?=?mid?-?1 12????return?"no?source?here!"

可以清晰的看出,第二種方法快了很多,而且在資源數量越大的時候,越能體現

對于方法1,通過大 O 表示法可以表示為

T(n) = O(n)

對于方法2,通過大 O 表示法可以表示為

T(n) = O(logn)

很明顯,隨著 n 的增加,logn 會遠遠小于 n,也即是方法2的速度會遠遠快于方法1,這一點我們在上面的實踐當中也有了證明

當然對于常見的復雜度,還有如下這些

O(1), O(n), O(logn), O(nlogn), O(n^2)

一般來說,他們的排序順序是這樣的

O(1) < O(logn) < O(n) < O(nlogn) < O(n^2)

最壞時間復雜度

我們再回到最開始的簡單代碼

1def?cal(n): 2??sum?=?0 3??for?i?in?range(n): 4????sum?+=?i 5??return?sum

可以簡單的把上述代碼分為兩塊,代碼行2和代碼行3、4
對于行2,復雜度為 O(1),對于行3、4,復雜度為 O(n),一般情況下,我們分析一段代碼的復雜度時,基本采用的是復雜度比較高的那一部分,也即是上述代碼的復雜度為 O(n)

這里其實還涉及到了兩個概念,就是最好情況時間復雜度最壞情況時間復雜度,同樣可以看出,O(1) 就是最好情況時間復雜度,而 O(n) 就是最壞的情況

好了,以上就是今天我們要分享的內容,喜歡就給個”在看“吧

往期精彩回顧適合初學者入門人工智能的路線及資料下載(圖文+視頻)機器學習入門系列下載中國大學慕課《機器學習》(黃海廣主講)機器學習及深度學習筆記等資料打印《統計學習方法》的代碼復現專輯 AI基礎下載機器學習交流qq群955171419,加入微信群請掃碼:

總結

以上是生活随笔為你收集整理的【科普】五分钟快速了解代码复杂度的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 一道本在线观看视频 | av色区 | 国产区视频在线 | 国产麻豆成人传媒免费观看 | 成人亚洲国产 | 女人特黄大aaaaaa大片 | 尤物在线观看视频 | 亚洲欧洲在线播放 | 影音先锋啪啪资源 | 最污的网站 | 久久蜜桃av一区二区天堂 | 韩国精品视频在线观看 | 欧美性生交xxxxx久久久缅北 | 激情视频久久 | 免费日b视频 | 夜夜高潮夜夜爽 | 久久久久久久久国产精品一区 | 久久有精品 | 中文字幕精品久久 | 一级片欧美 | jzzijzzij亚洲成熟少妇18 欧美www在线观看 | 美女光屁股视频 | 亚洲国产成 | 麻豆国产尤物av尤物在线观看 | 日韩 欧美 国产 综合 | 亚洲一区二区三区在线免费观看 | av永久免费在线观看 | 日本一区二区人妻 | 伊人春色网站 | 91欧美国产 | 蜜桃成熟时李丽珍在线观看 | xxxx日本黄色 | www.黄色网址 | 韩国三级在线 | 欧美日韩成人一区二区 | 日本道中文字幕 | 小俊大肉大捧一进一出好爽 | 午夜影剧院 | 五十路六十路七十路熟婆 | 偷拍老头老太高潮抽搐 | 黄色网页在线 | 国产天堂在线 | 91天天射 | 亚洲一区二区在线播放 | 日韩一区二区三免费高清在线观看 | 99er精品视频 | 黄色无遮挡 | 风间ゆみ大战黑人 | 少妇h视频| 国产精品毛片一区视频播 | 丁香婷婷久久久综合精品国产 | 丝袜五月天 | av大片免费在线观看 | 一本一道久久a久久 | 在线观看xxxx | 国产精品99精品 | 香蕉成人网 | 亚洲精品伦理 | 午夜视频免费在线观看 | 欧美精产国品一二三 | 另类激情综合 | 国产亚洲一区二区三区不卡 | 日韩欧美影院 | 久久精品欧美视频 | 一级毛毛片 | 亚洲美女视频在线观看 | 性av网站 | 北条麻妃av在线播放 | 日本中文字幕久久 | 日韩欧美一区二区三区久久婷婷 | 亚洲图片欧美在线 | 国产在线青青草 | 99久久99九九99九九九 | gogo亚洲国模私拍人体 | 久久精品一日日躁夜夜躁 | 欧美日韩国产一区 | 久久精品视频日本 | 成人在线观看你懂的 | 天天狠天天插天天透 | 国产二区免费 | 精品国产精品国产偷麻豆 | 一区二区三区在线观看 | 精品少妇久久久 | 全国男人的天堂网 | 50部乳奶水在线播放 | 中文字幕一区二区三 | 中文字幕不卡av | 精品国产乱码一区二区 | 91偷拍网站 | 亚洲欧美日韩精品久久亚洲区 | 日韩伦理大全 | 精品国产a线一区二区三区东京热 | 张柏芝亚洲一区二区三区 | 日韩欧美一区二区三区在线观看 | 久久国产亚洲 | 成人在线视频免费观看 | 久久久久久久精 | 日韩欧美在线观看一区二区三区 | av日韩在线播放 |