資料結構 緒論

2021-06-22 15:36:32 字數 2850 閱讀 7954

意義:演算法和資料結構是電腦科學的兩大支柱。

電腦科學早期定義為:研究演算法的科學。

電腦科學近期定義為:研究資料的科學。

資料結構是程式設計的基礎。

程式 = 演算法 + 資料結構。

資料結構是設計os、dbms、編譯等系統程式和各種應用程式的重要基礎。

要求:

1. 掌握各類基本資料結構型別和相應的儲存結構。

2. 提高閱讀和編寫演算法的能力。

3. 能針對給定問題,選擇相適應的資料結構,並能設計和分析演算法。

例1:980803 3202670 610054 510102780618748。

980803 班號

3202670 **號碼

510102780618748 其他資訊編碼

結論一:雜亂的資料不能表達和交流資訊。

例2:**號碼簿(a1 b1) (a2 b2) ...... (an bn)。

其中:ai為某人姓名,bi為該人的**號碼。

要求:設計乙個演算法,給定乙個姓名時,能查出此人的**號碼。

演算法一:如果姓名和**號碼的排列次序無規律,則只能逐一比較姓名進行查詢。

演算法二:如果姓名按字典順序組織,則查詢就快捷多了。

結論二:資料之間是有聯絡的。

例3:某大學生管理機構:

學校 —— 系

系 —— 年級

年級 —— 班級

班級 —— 學生

例3中資料之間呈分層結構(樹狀結構)。

結論三:資料之間是有結構的。

例4:圖書目錄管理

設每個書目含:書名、作者、登陸號、分類、出版年月

對圖書目錄常有如下操作:

查詢:某書在書庫中是否存在。

插入:購進新書時的錄入。

刪除:報廢和丟失的書,需從目錄中去掉。

結論四:在某種資料結構上可定義一組運算。

綜上所述:

ds主要研究內容:

1. 資料的各種邏輯結構和物理結構,以及它們之間的相應關係。

2. 並對每種結構定義相適應的各種運算。

3. 設計出相應的演算法。

4. 分析演算法的效率。

資料:所有能被計算機處理的符號的集合。

資料元素:是資料這個集合中的乙個個體。

設給定資料集合為:d = ,則di屬於d,並稱di為資料元素。

資料項:資料元素常常還可分為若干個資料項,資料項是資料具有意義的最小單位。

資料物件:具有相同特性的資料元素的集合。

設資料集合d = ,則:資料物件正整數n = ,資料物件字母c = 。

資料元素是資料的乙個個體,資料物件是資料的乙個子集。

資料結構:是帶有結構的資料元素的集合。

所謂結構就是資料元素之間的關係,即描述資料之間的運算及運算規則。

用集合的形式描述,資料結構就是乙個二元組:ds = (d r)。

其中:d是資料元素的集合,r是d上關係的集合。

簡言之,資料元素和其相互關係稱為資料結構。

邏輯結構:指資料元素之間的結構關係。

物理結構:指資料結構在計算機內的表示。

演算法概念:演算法是乙個有限的指令集,遵循指令流可以完成特定的功能。

演算法的基本特性:

1. 有窮性:演算法經有限步後結束。

2. 確定性:下一步必須是明確的。

3. 可行性:每一步是可執行的。

演算法與程式的區別:

演算法是解決問題的一種方法或乙個過程,考慮如何將輸入轉換成輸出,乙個問題可以有多種演算法。

程式是用某種程式語言對演算法的具體實現。

主要區別在:有窮性、正確定和描述方法。

1. 程式可以是無窮的,例如os,演算法是有窮的。

2. 程式可以是錯誤的,演算法必須是正確的。

3. 程式是用程式語言描述,在機器上可以執行。

4. 演算法還可以用框圖、自然語言等方式描述。

演算法分析:

如何衡量乙個正確演算法的好壞?

衡量的三個尺度:

1. 執行所花費的時間(演算法的時間特性)。

2. 所占用儲存空間的大小(演算法的空間特性)。

3. 其他(可讀性、易調性、健壯性等)。

語句頻度:語句可能重複執行的最大次數。

時間複雜度:設演算法中所有語句的語句頻度為t(n),f(n)是當n趨向無窮大時與t(n)為同階無窮大,則演算法的時間複雜度t(n)=o(f(n))。

其中:n為演算法計算量或為規模,f(n)是運算時間隨n增大時的增長率,o(f(n))是演算法時間特性的量度。

例如:程式段                    語句頻度                    時間複雜度

x=x+1                      1                                 o(1) 常數階

for(i=0;ix=x+1

for(i=0;ifor(j=0;jx=x+1

演算法與時間複雜性的關係

設a1,a2和a3是求解同一問題的不同演算法,其時間複雜度分別為:o(n) o(nlogn) o(n!)。

c1和c2為計算機,且c2的計算速度是c1的10倍。

複雜度          c1可解規模          c2可解規模          可解規模關係

o(n)              n11                        n21                       n21 = 10 n11

o(nlogn)      n12                        n22                       n22 = 10 n12

o(n!)             n13                        n23                       n23 = n13 + 小常數

資料結構 資料結構緒論

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

資料結構 緒論

程式 資料結構 演算法 資料 對客觀事物的符號表示。資料元素 資料的基本單位,由若干個資料項組成。資料項是資料不可分割的最小單位。資料物件 性質相同的資料元素的集合,使資料的乙個子集。資料元素是相互之間存在一種或多種特定關係的資料元素的集合。預定義常量型別 函式結果狀態嗎 define true 1...

資料結構緒論

資料結構是一種抽象資料的過程,這種能力是任何工具都無法代替的。學習資料結構的目的 資料結構是計算機專業的基礎,它為幾乎所有的軟體設計的基礎。同時他也培養求解複雜問題的能力。那麼,什麼是資料結構呢,這個概念是很重要的,人月神話上有一段話,說人們往往喜歡將問題分解開來處理,但是這樣一來造成了對整個問題的...