1. 程式人生 > >數據結構與算法 基於c語言篇

數據結構與算法 基於c語言篇

相互 線性 內存 例子 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語言篇