Python學習筆記Day26 演算法

2022-05-19 13:50:42 字數 634 閱讀 1906

目錄時間複雜度

時間複雜度:用來估計演算法執行時間的乙個式子(單位)

常見的時間複雜度(按效率排序)

o(1)如何一眼判斷時間複雜度?

1. 是否有迴圈減半的過程

while n > 1:

print(n)

n = n//2 # o(logn)

2. 幾次迴圈就是n的幾次方的複雜度

空間複雜度

空間複雜度:用來評估演算法記憶體占用大小的乙個式子

以空間換時間

列表查詢:從列表中查詢指定元素

輸入:列表、待查詢元素

輸出:元素下標或未查找到元素

順序查詢 # o(n)

從列表第乙個元素開始,順序進行搜尋,直到找到為止。

二分查詢 # o(log n)

從有序列表的候選區data[0:n]開始,通過對待查詢的值與候選區中間值的比較,可以使候選區減少一半。

一般遞迴會比不遞迴慢,但直接return接遞迴與不遞迴一樣

因為遞迴時需要先進後出,直接return偽遞迴,不需要出來,結果與while效率相同

裝飾函式直接裝飾遞迴函式時,每次遞迴都會呼叫裝飾函式,解決方法:另定義乙個函式去裝飾

每日演算法 day 26

那些你早出晚歸付出的刻苦努力,你不想訓練,當你覺的太累了但還是要咬牙堅持的時候,那就是在追逐夢想,不要在意終點有什麼,要享受路途的過程,或許你不能成就夢想,但一定會有更偉大的事情隨之而來。mamba out 2020.3.11 dp 做法 之前卡特蘭數感覺挺懵得 也沒學到 還是等之後學數論得時候專門...

Day 26 判斷子串行

給定字串 s 和 t 判斷 s 是否為 t 的子串行。你可以認為 s 和 t 中僅包含英文小寫字母。字串 t 可能會很長 長度 500,000 而 s 是個短字串 長度 100 字串的乙個子串行是原始字串刪除一些 也可以不刪除 字元而不改變剩餘字元相對位置形成的新字串。例如,ace 是 abcde ...

day26 網路程式設計

day26授課目錄 b 網路程式設計 tcp 面向連線 三次握手 資料安全,速度略低。分為客戶端和服務端。通訊的兩端都有socket。網路通訊其實就是socket間的通訊。資料在兩個socket間通過io流傳輸。socket在應用程式中建立,通過一種繫結機制與驅動程式建立關係,告訴自己所對應的ip和...