1. 程式人生 > >回爐篇2—資料結構(1)之資料結構和演算法

回爐篇2—資料結構(1)之資料結構和演算法

想學新東西,隨手拿來一本資料,一部視訊,但總感覺學不會,吸收效率低。不是我們笨,只是開啟他們的方式不對,合適的學習教材,能讓學習過程變得簡單,形象貼近生活。文底是乾貨直通車,好東西大家記得收藏,都是精挑細選的。文章內容是我自己的筆記,是用最簡語言寫的,可能不利於理解,大家想了解更多,還要看原文。

資料結構

計算機存、組織資料的方式,相互間有一種及以上關係的集合。

資料結構的基本功能:增、刪、查、迭代。

演算法

解決問題的步驟。

五個特徵:
1.有窮性:輸入必有結束。
2.確定性:處理明確,路徑唯一。
3.可行性:有限次基礎操作。
4.有輸入:加工物件量值。
5.有輸出:加工結果。(與輸入有確定關係)

設計原則:
1.正確性
2.可讀性
3.健壯性
4.高效率與低儲存需求

*演算法效率:*演算法執行時間。
*儲存量:*演算法執行過程式所需最大儲存空間。(包括程式本身所佔空間、輸入資料所佔空間、輔助變數所佔空間)
*時間複雜度:*執行演算法需要消耗多少時間, T(n)=O(f(n))。
空間複雜度:演算法需要佔用多少記憶體空間, S(n)=O(f(n))。

References:

Java資料結構和演算法(一)——簡介
資料結構01 演算法的時間複雜度和空間複雜度