1.什麼是資料結構和演算法
資料結構,就是一組資料的儲存結構。演算法,就是運算元據的一組方法。資料結構是為演算法服務的,演算法要作用在特定的資料結構之上。
2.為什麼要學習資料結構和演算法?
(1)對個人:資料結構和演算法是程式設計師的必修課程之一,能幫助我們寫出效能更優更好的**。演算法,是一種解決問題的思路和方法,也可以運用到生活的各個方面。長期來看,大腦思考能力是個人最重要的核心競爭力,而演算法能幫助我們有效的訓練大腦的思考能力。
(2)應用層面原因:在電腦科學和網際網路迅猛發展下,需要計算的資料量越來越龐大,但是計算機的計算能力是有限的,這麼大量的資料計算,需要越來越多的計算機,需要越來越長的計算時間,注重效率的我們需要盡可能的提高計算效率。其中重要的一項,就是使用合適的資料結構和演算法。選用合適的資料結構和演算法,特別是在處理數量非常龐大的資料的時候,可以極大提高計算效率。
3.怎麼樣衡量資料結構和演算法
需要引入乙個衡量的標準(metric)--- 時間複雜度和空間複雜度。學習資料結構和演算法的基石,就是要學會『複雜度分析』。知道怎樣去分析複雜度,才能做出正確的判斷,在特定的場景下選用合適的正確的演算法。而不是盲目的死記硬背,機械操作。
4.資料結構和演算法20個最常用的最基礎的資料結構和演算法。
10個資料結構:陣列、鍊錶、棧、佇列、雜湊表、二叉樹、堆、跳表、圖、trie樹。
10個演算法:遞迴、排序、二分查詢、搜尋、雜湊演算法、貪心演算法、分治演算法、回溯演算法、動態規劃、字串匹配演算法。
資料結構與演算法學習總結(二)
1.什麼是複雜度分析?1 資料結構和演算法解決是 如何讓計算機更快時間 更省空間的解決問題 2 因此需要從執行時間和占用空間兩個維度來評估資料結構和演算法的效能。3 分別用時間複雜度和空間複雜度兩個概念描述效能問題,二者統稱為複雜度。4 複雜度描述的是演算法執行時間 或占用空間 與資料規模的增長關係...
資料結構與演算法學習
我想重新學習一下資料結構與演算法,打好基礎。to measure is to know.我們用演算法複雜度t n 來表示演算法的效率,效能。t n 的取值 所有問題規模為n的問題例項中,將他們的計算成本進行總體的比較,取出最壞情況下的值。有幾點需要catch,1.演算法執行的時間,會根據程式語言,作...
資料結構與演算法學習筆記(一)
資料 計算機操作的物件 資料元素 組成資料的基本基本單位 資料項 乙個資料元素可以由若干個資料項組成 資料物件 性質相同的資料元素的集合 資料結構 是相互之間存在一種或多種特定關係的資料元素的集合 資料型別 1.原子型別 不可以在分解的基本型別,包括整型,字元型 2.結構型別 由若干個型別組合而成 ...