趣說:什么是數(shù)據(jù)結(jié)構(gòu)和算法
相信你的電腦里面應該有這么一個
視頻教程文件夾

不用我說
在這里面肯定是你
精心收藏的精華教程

不辭辛勞的你
按照每個優(yōu)秀的老師
都分門別類的安排好
每一系列的精品教程

亦或是求知欲旺盛之時你會去這個文件夾里面
尋找優(yōu)秀的教程加以學習
可能你會按照老師的名稱查找也可能你會按照你喜歡的姿勢查找...
不管怎么樣
你終歸找到了教程學習了 1?分鐘然后就快樂的完事了

你可能要問了這特么和數(shù)據(jù)結(jié)構(gòu)算法有個毛線關(guān)系?
其實你對文件中的教程分門別類的存儲就是一種數(shù)據(jù)結(jié)構(gòu)
而你通過不同的方式去文件夾里面查找教程這方式就是一種算法

具體來說數(shù)據(jù)結(jié)構(gòu)就是對數(shù)據(jù)按照一定的規(guī)律進行組織和存儲
對數(shù)據(jù)如何安排取決于你
你以什么樣的方式安排存儲數(shù)據(jù)
你得到的就是什么樣的數(shù)據(jù)結(jié)構(gòu)
比如你以這樣的關(guān)系存儲數(shù)據(jù)
| 名稱 | 出道時間(年) |
| 蒼井空 | 2002 |
| 小澤瑪利亞 | 2005 |
| 波多野結(jié)衣 | 2008 |
| ... | ... |
你看定義了名稱和年份然后把具體的數(shù)據(jù)收集好存儲在這張表中
那么這張表就是數(shù)據(jù)結(jié)構(gòu)

這時候你可能會想到
Python 中的類 Class你之前在?Class 中
定義的一些屬性
比如:

這也是一種數(shù)據(jù)結(jié)構(gòu)的定義
你知道的 Python 數(shù)據(jù)類型如:Number/String/List..它們也都是一種數(shù)據(jù)結(jié)構(gòu)
當然
在數(shù)據(jù)結(jié)構(gòu)中比較典型的有
數(shù)組、棧、圖、樹、鏈表等等
它們都有各自的規(guī)律
去安排數(shù)據(jù)的存儲

而算法呢就是按照特定的指令
以一定的邏輯按序列去完成指定的任務
所以算法更強調(diào)的是
“邏輯方法”
當然,前人在搞算法的時候
已經(jīng)留下了不少算法秘籍
比如:
二分查找、排序、遞歸、貪婪、動態(tài)規(guī)劃等等

然后
為啥人們一提到數(shù)據(jù)結(jié)構(gòu)就會提到算法呢
這是因為它們有著
非常曖昧的關(guān)系
它們
相濡以沫相敬如賓相輔相成
可以說數(shù)據(jù)結(jié)構(gòu)沒了算法就是擺設
算法沒了數(shù)據(jù)結(jié)構(gòu)就是有吉爾沒地兒使

好了
道理我都懂那么數(shù)據(jù)結(jié)構(gòu)算法它們和 Python 有什么關(guān)系呢?
沒有半毛錢關(guān)系
或者說關(guān)系不大
放心Python 不是它們的小三
因為數(shù)據(jù)結(jié)構(gòu)算法
并不是完整的代碼
更多的是如何解決問題的邏輯方法
而這些是可以通過代碼去描述和實現(xiàn)的
所以呢Java、C、Python等等語言都可以上
只不過
Python用的人多語言相對簡單
用它來描述算法相關(guān)是個不錯的選擇

最后你可能會問了數(shù)據(jù)結(jié)構(gòu)和算法
有個毛線用?。?/span>
額..
是基本功
是一種思想是看懂框架代碼的前提
是解決問題的套路是水平的體現(xiàn)是面試的門檻...

ok今天就跟你說這么些
最后的最后來跟你做個小小的互動如果小帥b在這里用 Python?偶爾跟你扯扯算法的東東
你會?
那么我們下回見
peace

掃一掃
學習 Python 沒煩惱
都看到這里了
不點個在看么
評論
圖片
表情
