在本文中,小烏龜的數據結構和算法的教學視頻學習筆記算法
第一章:談談數據結構和算法這2個好基友編程
1、聊聊數據結構數組
1、爲何學數據結構?編程能力有質的飛越,再也不停留在調用現成的API,作一個上檔次的程序猿。數據結構
2、什麼是數據結構?數據結構是一門研究非數值計算的程序設計問題中的操做對象,以及他們之間的關係和操做等相關問題的學科。數據結構和算法
思考:好吧,簡單來講程序設計 =數據結構 + 算法,數據結構就是關係,就是數據元素之間存在的一種或多種特定關係的集合。學習
3、數據結構分爲邏輯結構和物理結構,前者指數據對象中數據元素之間的相互關係,不然指邏輯結構在計算機中的存儲形式spa
思考:數據結構 =邏輯結構 +物理結構設計
4、邏輯結構有四種例如如下所看到的:指針
思考:假設從人的交合方面說明4大邏輯結構,集合 = 2個陌生人,線性結構 = 1對夫妻,樹形結構 = 一男多女3p4p5p,圖形結構 = 聚衆淫亂code
5、物理結構是指怎樣將數據元素存儲到計算機的存儲器中,此處的存儲器主要針對內存而言,像硬盤、光盤能外部存儲器的數據組織通常常使用文件結構來描寫敘述。
思考:假設說邏輯結構是關係,那麼物理結構就是關係在內存的存儲關係
6、數據元素的存儲結構形式有兩種:
思考:存儲結構 = 順序存儲 +鏈式存儲。前者就是排排坐,後者多了指針指向元素地址,就可以找到下一個元素在哪裏。就是叫號系統
2、聊聊算法
1、不明確數據結構和算法的關係?,見下圖
2、算法是什麼?算法宅計算機中表現爲指令的有限序列,並且每一條指令表示一個或者多個操做。一個問題可以由多個算法解決,一個算法也不可能具備通解所有的問題。
思考1:算法就是你泡妞的技巧和方式。對不一樣的妞兒要有不一樣的喜愛,能夠有多個追求的方式,一種追求方式不可能對通吃所有的妞兒,不一樣的追求方式就有區別。有的追的快,有的追得慢。學會針對不一樣的妞兒採取適合的泡妞技巧才能夠高速的泡到妞
思考2:雖然算法不惟一。但是咱們要學習掌握好一些號的算法,對咱們解決這個問題很是有幫助。
3、算法的5個基本特徵:輸入、輸出、有窮性、肯定性和可行性
4、算法的要求:正確性、可讀性、健壯性、時間效率高、存儲量低
5、算法的正確性:算法的正確性是指算法至少應該具備輸入、輸出和加工處理無歧義性,能正確反映問題的需求、能夠獲得問題的正確答案。
大致分爲下面四個層次:
思考:對於非法輸入和有益刁難的測試都有輸出知足規格結果很是重要
6、算法的可讀性:算法設計的還有一個目的就是爲了便於閱讀、理解和交流。咱們寫代碼的目的除了讓計算機運行,還有就是爲了便於他人閱讀和改動
思考:代碼的可讀性要強
7、算法的健壯性:當輸入數據不合法時。算法也能夠作出相關的處理。而不是產生異常、崩潰或者莫名其妙的結果。
思考:健壯性,簡而言之就是不會因爲別人亂輸入就把你的程序搞崩潰了
8、算法高效率的時間和內存容量較低:在很是高的效率運行,較少使用的變量。使用較少的內存資源