下面的都是摘自《大話資料結構》書中的內容,記下來可以時時檢視:
資料:描述客觀事物的符號,計算機可以操作的物件;
資料元素:組成資料的有一定意義的基本單位,作為整體能被計算機處理;人是人類的資料元素,牛馬是牲畜類的資料元素
資料項:組成資料元素,人的眼睛耳朵就是人這個資料元素的資料項;
注意:資料項是資料的最小單位,不過討論問題時資料元素才是資料模型的著眼點。
資料物件:性質相同的資料元素的集合,資料的子集
資料結構:相互存在關係的資料元素的集合。
邏輯結構:是指資料物件中資料元素之間的相互關係
集合結構,線性結構,樹形結構,圖形結構
物理結構:是指資料的邏輯結構在計算機中的儲存形式
順序儲存結構,把資料元素存放在位址連續的儲存單元裡
鏈式儲存結構,資料元素儲存在在任意的儲存單元裡,這組儲存單元可以是連續的,也可以是不連續的。資料元素的儲存關係不能反應邏輯關係,因此需要乙個指標存放資料元素的位址。
邏輯結構面向問題,物理結構面向計算機。
資料型別:一組性質相同的值的集合及定義在次集合上的一些操作的總稱。
抽象資料型別:是指乙個數學模型及定義在該模型上的一組操作。
乙個抽象資料型別定義了:乙個資料物件、資料物件中個資料元素之間的關係及對資料元素的操作。
抽象資料型別體現了程式設計中問題分解、抽象和資訊隱藏的特性。抽象資料型別把實際生活中的問題分解為多個規模小且容易處理的問題,然後建立乙個計算機能處理的資料模型,並把每個功能模組的實現細節作為乙個獨立的單元,從而使具體實現過程隱藏起來。
演算法是解決特定問題求解步驟的描述,在計算機中表現為指令的有限序列,並且每條指令表示乙個或多個操作。
演算法的五個基本特性:輸入、輸出、有窮性、確定性和可行性。
零個或多個輸入,乙個或多個輸出。
有窮性:演算法在執行有限的步驟後,自動結束而不會出現無限迴圈,並且每乙個步驟在可接受的時間內完成。
確定性:每一步都有確定的含義,不會出現二義性。
可行性:每一步都必須是可行的,每一步都能夠通過執行有限次數完成。
設計演算法應該盡量滿足時間效率高和儲存量低的需求。
事後統計方法:利用設計好的測試程式和資料,利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低。有很大的缺陷。
事前分析估算方法:在計算機程式編制前,依據統計方法對演算法進行估算。
程式執行消耗的時間取決於:(1)演算法的策略方法(2)編譯產生的**質量(3)問題的輸入規模(4)機器執行指令的速度
乙個程式的執行時間依賴於演算法的好壞和問題的輸入規模。
函式的漸進增長:給定兩個函式f和g,如果存在乙個整數n,使得對於所有的n>n,f總是大於g,那麼,我們說f的增長漸近快於g。
演算法執行次數公式的簡化:
(1)忽略加法常數:如2n+3與3n+1,可以簡化為比較2n與3n
(2)與高次項相稱的常數並不重要:圖4n+8與2n2+1,可直接比較n與n2
(3)最高次項的指數大的,函式隨著n的增長,結果也會變得增長特別快。
(4)判斷乙個演算法效率時,函式中的常數和其他次要項常常可以忽略,而更加應該關注主項(最高端項)的階數。
(5)某個演算法隨著n的增大,它會越來越優於(或者差於)另乙個演算法。
時間複雜度:演算法的時間量度,用大寫o來表示,記作t(n)=o(f(n)),f(n)是問題規模n的某個函式。
推導大o階:
(1)用常數1取代執行時間中的所有加法常數
(2)再修改後的執行次數函式中,只保留最高端項
(3)如果最高端項存在且不是1,則去除與這個項相乘的常數。
執行時間恆定的演算法(即公式裡只有常數項,與n無關,我們用1取代了常數項),稱之為o(1)的時間複雜度,又叫常數階。
線性階:分析迴圈結構的運**況
對數階:
平方階:巢狀迴圈
執行係數函式
階非正式術語
12o(1)
常數階2n+3
o(n)
線性階3n^2+2n+1
o(n^2)
平方階5logn+20
o(logn)
對數階2n+3nlogn+19
o(nlogn)
nlogn階
6n3+2n2+3n+4
o(n^3)
立方階2的n次方
o(2的n次方)
指數階常用的時間複雜度所耗費的時間比較:
o(1)>o(logn)>o(n)>o(nlogn)>o(n2)>o(n3)>o(2n)>o(n!)>o(nn)
演算法空間複雜度:通過計算演算法所需要的儲存空間實現,計算公式s(n)=o(f(n))。
資料結構基本知識
資料結構基本知識 一 資料結構的基本概念 1.資料 是描述客觀事物的符號,是計算機中可以操作的物件,是能被計算機識別,並輸入給計算機處理的符號集合。解釋 簡單來說,樂壇,有成百上千的歌手,樂壇是眾多歌手的集合,可以把樂壇理解為計算機中的資料。2.資料元素 是組成資料的 有一定意義的基本單位,在計算機...
資料結構和演算法 (1)資料結構的基本知識
1號 2號 3號 4號 比如1號元素存放在這,2號元素緊挨著它,3號元素緊挨著2號,以此類推,這是順序儲存,例如排隊買東西 為什麼出現鏈式儲存,就因為比如排隊買東西的話,前邊人太多,此時你有緊急事情需要離開以下,但是你再次回來的時候,即使還是沒有輪到你原來離開時的位置,別人也不會讓你插隊站在你原來的...
資料結構 基本知識1
資料結構是研究組成資料的資料元素的學科。資料即資訊的載體,是能夠輸入到計算機中且能被計算機識別 儲存和處理的符號總稱。資料元素由若干資料項組成,資料項是資料中的最小單位。資料型別是對資料元素取值範圍與運算的限定。資料結構 ds 可用形式化語言描述,即ds是乙個二元組 ds d,r 其中,d為資料元素...