數據結構與算法 基於c語言篇
阿新 • • 發佈:2017-05-21
相互 線性 內存 例子 c語言 基於 數據結構 align 四種
學習數據結構與算法走向深藍之路
第一章:數據結構與算法概念型
數據結構:數據之間的相互關系,即是數據的組織形式.
基本組成:{
數據:信息的載體
數據元素:數據基本單位:
}
其結構形式有四種:
1,集合結構 2,線性結構. 3,樹形結構 4,圖形結構
在計算機中的存儲有量中形式:
順序存儲(數組形式)和非順序存儲(鏈式存儲結構)
1.1抽象數據類型:指的是數據模型或者定義在數據模型上的一組操作
(D,R,P){
D是數據對象,
R是D上的關系集
P是對D進行的操作}
ListInsert(&L,i,e):
ListDelete(&L,i,e):
插入與刪除
算法是解題步驟,是指令的有限序列,一個問題的解決方案要以算法為基礎.
數據結構+算法=程序
對算法進行度量:
{1,算法的時間復雜度(就是耗時間資源), 2,空間復雜維度(所占內存的度量)}
算法例子:
例1:需要額外空間
void swap(int &a,int &b){
int temp;
temp=a;
a=b;
b=temp;
}
例2
void swap(int &a,int &b){
a=a+b;
b=a-b;
a=a-b;
}
算法定理(計算時間)
定理1:
如果T1(N)=O(f(N))且T2(N)=O(g(N))那麽
1 ,T1(N)+T2(N)=max(O(f(N) ,O(g(N))
2,T1(N)*T2(N)=O(f(N)*O(g(N)
定理2:
如果T(N)是一個K次多項式,則T(N)=θ(NK)
數據結構與算法 基於c語言篇