理解資料結構 資料結構緒論總結

2021-10-02 06:05:34 字數 2158 閱讀 4454

由於關於資料結構的概念和知識點過於繁亂,所以我今天就將其理了理,然後概括了一下本章我認為較重要的一些。

我們都知道計算機主要用於數值計算,而我們的資料結構主要研究非數值計算問題(大多為生活中遇到的問題)。

上圖就是它們的基本關係,關於其基本概念什麼的,在這裡就不多說了。

其中儲存結構又叫做物理結構,其中的順序結構通常借助c語言中的陣列型別來描述,而鏈式結構是借助c語言中的指標型別來描述的。

抽象資料型別:

抽象資料型別=資料的邏輯結構+抽象運算

定義格式:(主要使用類c語言)

adt 抽象資料型別名adt 抽象資料型別名
舉個複數例子:(類c語言)

adt complex

s=assign(&c,v1,v2)

初始條件:空的複數c已存在

操作結果:構造複數c,r1,r2分別被賦以引數v1,v2的值。

destroy(&c)

初始條件:複數c已存在

操作結果:複數c已銷毀。

}adt complex

具體的**實現在資料結構課本第十頁有詳細的講解,在這裡主要就是說一下&符號的作用,

在基本操作的定義格式:

基本操作名(參數列)

初始條件:(初始條件描述)

操作結果:(操作結果描述)

這裡的參數列:1.賦值引數:只為操作提供輸入值。

2.引用引數:以&開頭,除可提供輸入值外,還將返回操作結果。

比如將圖形a放大十倍,我們可以再用乙個a』來返回這個放大後的a,然而由於放大後的a仍然是乙個圖形,所以我                          們還可以用a來返回放大後的,只需在其前面加乙個&即可。

本章演算法裡面主要是乙個時間和空間的複雜度。

時間複雜度:

時間複雜度是由巢狀最深層語句的頻度決定的。

例1:

for(i=0;i其時間複雜度為(n*(n+1)*(n+2))/6,即t(n)=o(n*n*n),這個需要記住(取最高次冪,將低次冪以及最高次冪的係數一併去掉)。

例2:for(i=1;i<=n;i++)

i=i*2;

其時間複雜度為t(n)=o(logn)

因為:

語句執行1次;i=2 

語句執行2次;i=4(2的平方)

語句執行3次;i=8(2的3次方)

語句執行m次;i=2的m次方

2的m次方<= n

m<=logn

另外對於

for(i=0;i其時間複雜度為t(n)=o(n+1),之所以為n+1,是因為當i=n-1時,i++會繼續執行,到i=n,才進行判斷不滿足條件i最好最壞複雜度: 此外

for(i=0;i這個時間複雜度取決於a[i][j]的位置,有可能一次就查詢成功了(t(n)=o(1)),也有可能查詢完所有的都沒有成功(t(n)=o(n*n))

最好時間複雜度:t(n)=o(1)

最壞時間複雜度:t(n)=o(n*n)

一般總是考慮在最壞情況下的時間複雜度,以保證演算法的執行時間不會比它更長。

對於複雜的演算法可以將它分成幾個容易估算的部分,然後利用加法和乘法法則,計算演算法的時間複雜度

a.加法規則:

t(n)=t1(n)+t2(n)=o(f(n))+o(g(n))=o(max(f(n),g(n))    //取最大值

b.乘法法則;

t(n)=t1(n)*t2(n)=o(f(n))*o(g(n))=o(f(n)*g(n))            //直接相乘

時間複雜度的比較:(複雜度從小到大)

常量階o(1)《對數階o(logn)《線性階o(n)《線性對數階o(n*logn)《平方階o(n*n)《立方階o(n*n*n)空間複雜度:

例:逆序輸出陣列中的元素

1.空間複雜度s(n)=o(1),原地工作

for(i=0;i2.空間複雜度s(n)=o(n),因開闢了新的陣列,占用了空間

for(i=0;i

for(j=0;j

理解資料結構

最近在學習各種資料結構,於是就在想,為什麼我們需要資料結構呢?為什麼要設計這麼多資料結構?資料結構到底解決了我們什麼樣的問題?我們提到 資料結構 時,一般是指電腦科學中的乙個概念,但是從本質上講,資料結構應該是指對資料的一種組織方式。既然如此,我們沒必要非在電腦科學領域中討論 概念本身,把它放在其它...

資料結構 資料結構緒論

資料結構是相互間存在一種或多種特定關係的資料元素的集合。程式設計 資料結構 演算法 資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及他們之間的關係和操作等相關問題的學科。資料元素是組成資料的 有一定意義的基本單位,是計算機中通常作為整體處理,也被稱為記錄。乙個資料元素可以由若干個資料項組...

大話資料結構 資料結構緒論

資料 描述客觀事物的符號,是計算機可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。有兩個要素 資料元素 組成資料的基本單位,也就是一條條資料記錄。資料項 資料中不可分割的最小單位。例子 資料 人類 資料元素 人 資料項 眼耳口鼻 資料結構 相互之間存在一種或多種關係的資料元素的集合。...