假設存在函式g,是的演算法a處理規模為n的問題所用的時間為t(n)=o(g(n)),則稱o(g(n))為演算法a的漸進時間複雜度,簡稱時間複雜度。
演算法完成工作最多需要多少基本操作,即最壞時間複雜度
最壞時間複雜度提供了一種保證,表明演算法在此種程度上的基本操作中一定能完成工作。
基本操作,只有常數項,認為其時間複雜度為o(1)。
順序結構,時間複雜度按加法進行計算。
迴圈結構,時間複雜度按乘法進行計算。
分支結構,時間複雜度取最大值。
只關注運算元量的最高次項,其他次要項和常數項可以忽略。
所消耗的時間大小:o(1)我們怎麼用python中的型別儲存乙個班的資訊?
答:可以用列表、字典、元組等python中已封裝好的資料結構來儲存。
舉例
'''
用python中的資料結構儲存乙個班的學生資訊
name
agehometown
可以用列表、字典、元組
'''# 1、列表+元組
[ ("zhangsan",21,"beijing"),
("lisi",22,"nanjing"),
("wangwu",24,"dongjing")
]# 2、列表+字典
[ ,
]# 3、字典+字典
, "lisi":,
"wangwu":
}
以上三種方法,用列表時,想在列表中獲得一名同學的資訊時,其複雜度為o(n),而用字典時,其複雜度為o(1)。
資料結構只是靜態的描述了資料元素之間的關係。
高效的程式需要在資料結構的基礎上設計和選擇演算法。
程式=資料結構+演算法
把資料型別即資料型別上的運算捆在一起,進行封裝。
常用的資料運算有五種:
資料結構基礎知識
時間複雜度和空間複雜度 同一問題可用不同演算法解決,而乙個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。乙個演算法的評價主要從時間複雜度和空間複雜度來考慮。1 時間複雜度 1 時間頻度 乙個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機執行測...
資料結構基礎知識
一種資料的邏輯結根據需要可以表示成多種儲存結構,常用的儲存結構有順序儲存 鏈結儲存 索引儲存等,採用不同的資料結構,其資料處理的效率是不同的。線性表是一種常用的資料結構。在實際應用中,線性表都是以棧 佇列 字串 陣列等特殊線性表的形式來使用的。線性表是一種線性結構。線性表有順序儲存結構和鏈式儲存結構...
資料結構基礎知識
簡單的說,資料結構是一門研究非數值計算的程式設計問題中計算機的操作物件以及它們之間的關係和操作等的學科。描述一類非數值計算問題的數學模型不再是數學方程,而是諸如表 樹和圖之類的資料結構。資料結構 的研究不僅涉及到計算機硬體 特別是編碼理論 儲存裝置和訪問方法等 的研究範圍,而且和計算機軟體的研究有著...