資料結構學習 一

2021-08-20 09:21:38 字數 1917 閱讀 3155

資料機構在大學也斷斷續續學過一些,不過到工作時候已經忘了很多,現在想著再重頭學一遍,應該也是為時不晚。

資料結構是一門研究非數值計算的程式設計問題中的操作物件,以及它們之間的關係和操作相關的學科。

用自己的理解的話來說就是演算法的模型。

程式=資料結構+演算法

邏輯結構

資料物件中資料元素之間的相互關係。

01.集合結構

02.線性結構

03.樹形結構

04.圖形結構

資料的邏輯結構在計算機中的儲存形式。

01.順序儲存結構:資料元素存放在連續的儲存單元裡

演算法和資料結構是密不可分的,學習資料結構肯定也是脫離不了演算法的。

算0+1+2....+100=5050; (1+n)*n/2 只用運算一次 for迴圈要算100次。

演算法就是一種技巧和方式,特定的問題用多種演算法解決。

演算法需要零個或多個輸入。

演算法至少有乙個或多個輸出。

演算法在執行有限步驟之後自動結束,不會無限迴圈。

演算法的每乙個步驟都具有確定的含義。

演算法在一定條件下,只有一條執行路徑,相同的輸入只能有唯一的輸出結果。

演算法的每個不走都應該被精確定義而無歧義。

演算法的每一步都必須是可行的,每一步都能夠通過執行。

演算法至少具有輸入、輸出和加工處理無歧義性、能掙錢反應問題需求、能夠得到問題的正確答案。

演算法程式的設計沒有語法錯誤。

演算法程式對合法輸入能夠產生滿足要求的輸出。

演算法程式對於非法輸入能夠產生滿足規格的說明。

演算法程式對於故意刁難的測試輸入都有滿足要求的輸出結果。

需要便於閱讀、理解和交流。

當輸入資料不合法時,演算法也能做出相關處理,而不是產生異常、崩潰或莫名其妙的結果。

通過設計好的測試程式和資料。利用計算機計時器對不同演算法編制的程式的執行時間進行比較,從而確定演算法效率的高低。

缺陷:必須依賴測試程式,需要花費大量時間和精力。

在電腦程式編寫前,依據統計方法對演算法進行估算。

高階語言編寫的程式在計算機上執行所消耗的時間取決於以下因素:

a. 演算法採用的策略,方案

b. 編譯產生的**質量

c. 問題的輸入規模(輸入量的多少)

d. 機器執行指令的速度

在進行演算法分析時,語句的執行次數t(n)是關於問題規模n的函式,進而分析t(n)隨n的變化情況並且確定t(n)的數量級。

演算法的時間複雜度,就是演算法的時間度:t(n)=o(f(n))。表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同,稱作演算法的漸進時間複雜度,簡稱未時間複雜度。其中f(n)是問題規模n的某個函式。

關鍵:執行次數==時間

o()大o記法,t(n)增長最慢的演算法就是最優演算法

002.如何分析乙個演算法的時間複雜度

a. 用常數1取代執行時間中的所有加法常數

b. 再修改後的執行次數中,只保留最高項

c. 如果最高項存在而且不是1,則去除與這個項相乘的常數

d. 得到最後的結果就是大0階

例如:查詢乙個有n個隨機數字的陣列中的某個數字,最好情況就是

o(1)

最壞情況就是

o(n)

平均執行時間是期望的執行時間。

最壞執行時間是一種保證,一般提到的執行時間都是最壞執行時間。

例如判斷乙個年份是否是閏年可以寫一系列的邏輯演算法來判斷段,第二種就是把年存在乙個陣列裡,閏年返回1,通過輸入年份判斷返回值得出是否是閏年(查表

)。第二種就是以空間換時間。

演算法空間複雜度:s(n)=o(f(n)) n為問題的規模,

f(n)

為關於n

所佔儲存空間的函式。

資料結構學習(一)

資料結構,是相互之間存在一種或多種特定關係的資料元素的集合,資料結構可以分為邏輯結構和物理結構 邏輯結構 是指資料物件中資料元素之間的相互關係 1.集合結構 集合結構中的資料元素除了屬於同乙個集合外,沒有任何關係 2.線性結構 線性結構中的資料元素是一對一的結構關係 3.樹形結構 樹形結構的資料元素...

資料結構學習 一

學習的四大步驟 wwwa 1.什麼是a what 2.為什麼需要a why 3.怎麼用a how 4.需要注意的問題 attention 我們知道程式 資料結構 演算法,可見資料結構的重要性。在平時我們建立的乙個陣列以及對陣列的新增刪除操作都屬於資料結構的範疇。那麼,什麼是資料結構呢?定義 我們如何...

資料結構學習(一)

在生活中很多問題不再是數值計算的數學方程,而是諸如表 樹和圖之類的資料結構。資料結構是數學 演算法和硬體的交集,是一門重要的學科。資料 所有能輸入到計算機中且能被處理的符號總稱,例如影象 聲音等。資料元素 是資料的基本單元,例如整型數 字串等 資料項是資料的最小單位。資料物件 性質相同的資料元素的集...