python-數據結構-DAY1

0.算法的基本特點
0.有0個或多個輸入。
1.有1個或多個輸出
2.算法執行的步驟具有有窮性
3.每一步執行的語句所表達的含義是確定的
4.算法的設計思想一定是可行的

1.算法的衡量是用時間複雜度"大O表示"
因爲每臺機器執行的時間總是不同的,但是執行進本運算數量大體相同,爲了衡量這個大體相同的概念,我們引入時間複雜度,時間複雜度包括最優時間複雜度,最壞時間複雜度,平均時間複雜度,一般情況最先研究最壞情況複雜度(數據的順序是無序的)。
順序結構--------複雜度相加
循環結構--------複雜度相乘
分支結構--------複雜度在分支中最壞的情況
忽略常數項(O(1))

2.常見時間複雜度以及大小比較
常數項 --------O(1)
線性項 --------O(N)
平方項 ---------O(N²)
立方項 ---------O(N³)
對數項 ---------O(logN)
指數項 ---------O(a^N)
NlogN ----------O(NlogN)

在這裏插入圖片描述

3.timeit衡量python代碼的時間複雜度
timeit衡量時間

from timeit import Timer


def t1():
    l1 = []
    for i in range(1000):
        l1.append(i)


text_time1 = Timer("t1", "from __main__ import t1")
print("append_time:{}".format(text_time1.timeit(1000)))



append_time:1.3199999999990997e-05

list常見操作複雜度

4.timeit衡量列表的複雜度
dict操作時間複雜度

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章