數據結構(一):數據結構的基本概念和算法的時間和空間複雜度

數據結構討論的範疇

計算機技術的兩大支柱:1是數據結構,2是算法。在某種程度上講,程序設計等同於數據結構+算法。css

程序設計是爲計算機設計一組指令集,算法是解決問題的策略,數據結構是模型。html

問題包括:數值計算,解方程,算法

非數值計算的問題:計算機對弈,棋盤,棋子如何表示(模型),規則策略(算法)數據結構

咱們討論的是:實體的數學模型(非數值計算)及其上的操做如何在計算機上表示和實現。函數

相關概念

數據(Data):是信息的載體,可以被計算機識別、存儲和加工處理的數值、字符等。
數據元素(Data Element):是數據的基本單位。也稱爲元素、結點、頂點、記錄。程序中做爲一個總體來處理。
數據項(Data Item):有獨立含義的數據最小單位,也稱域(Field)
關鍵碼(key):起標識做用的數據項
數據對象(Data Object):是具備相同特性的數據元素的集合,是數據的一個子集。 

數據結構涉及的內容

1. 邏輯結構(Logical Structure):數據元素之間的邏輯關係。
2. 存儲結構(Storage Structure):數據元素及其關係在計算機存儲器內的表示
3. 施加在該數據結構上的操做

數據的邏輯結構

線性結構的邏輯特徵:有且僅有一個開始結點和一個終端結點,而且全部結點都最多隻有一個直接前趨和直接後繼。
非線性結構的邏輯特徵:一個結點可能有0,1,或者多個直接前趨和直接後繼。如:樹形、圖狀或者網狀、純集合。

數據的存儲結構

順序存儲方法:把邏輯上相鄰的結點存儲在物理位置上相鄰的存儲單元裏,結點間的邏輯關係由存儲單元的鄰接關係來體現。
連接存儲方法:該方法不要求邏輯上相鄰的結點在物理位置上也相鄰,結點間的邏輯關係由附加的指針字段表示。
索引存儲方法:在存儲結點信息的同時,還創建附加的索引表。
散列存儲方法:根據結點的關鍵字直接計算出該結點的存儲地址。

   線性表是一種邏輯結構,若採用順序方法的存儲表示,則爲順序表;若採用連接方法的存儲表示,則爲鏈表;若採用散列方法的存儲表示,則爲散列表;若對線性表上的插入、刪除運算限制在表的一端進行,則爲棧;若對插入限制在表的一端進行,而刪除限制在表的另外一端進行,則爲隊列。性能


什麼是算法?

算法:經過數據結構解決某一特定問題的具體步驟的描述,是有限長的操做序列。
算法特性:
-- 有輸入:具備零個或多個輸入的外界量。
--有輸出:至少產生一個輸出。
-- 可行性:全部操做能夠經過已實現的基本操做運算有限次實現
-- 有窮性:操做步驟有限,且每一個步驟能在有限時間完成
-- 肯定性:每條操做的含義都必須明確,無二義性。

算法評價

評價一個算法的好壞通常從4個方面進行:
-- 正確性:是指算法是否正確;
-- 運行時間:執行算法所耗費的時間;
-- 佔用空間:執行算法所耗費的存儲空間;
-- 簡單性:是指算法的易讀性等。

算法性能分析與度量

算法的性能標準: 正確性,可以使用性,可讀性,效率,健壯性
算法的後期測試
--在算法中的某些部位插裝時間函數 time( )
--測定算法完成某一功能所花費時間
算法的事前估計
--空間複雜度
--時間複雜度
空間複雜度度量: 存儲空間的固定部分-- 程序指令代碼的空間,常數、簡單變量等變量所佔空間  和 可變部分--尺寸與實例特性有關的成分變量所佔空間、引用變量所佔空間、遞歸棧所用空間、經過new和delete命令動態使用空間
時間複雜度度量:編譯時間和運行時間(獨立於機器的軟硬件、假設每條語句的時間是單位時間、語句的頻度)
#define n 天然數
 
MATRIXMLT(A,B,C)
 float A[n][n],B[n][n],C[n][n];
 {
	int i,j,k; 
(1)	for ( i=0;i<n;i++)				   n
(2)	   for (j=0;j<n;j++)			              n^2
	   {
(3)	           C[i][j]=0;  			   n^2
(4)		   for (k=0;k<n;k++)   	           n^3
(5)			C[i][j]= C[i][j]+A[i][k]*B[k][j] ;   2n^3
	   }
 
}/* MATRIXMLT */

該算法中全部語句的頻度之和(即算法的時間耗費)爲:測試

T(n)=n+n2+n2+n3+2n3=3n3 +2n2+nspa

時間複雜度相應的數量級 ( ) 按遞增排列
常數階O(1)
對數階O(log2n)
線性階O(n)
線性對數階O(nlog2n)
平方階O( n 2)
立方階O( n 3)
指數階O( 2 n)

假定時間複雜性函數的時間單位爲 us

相關文章
相關標籤/搜索