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

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

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

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

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

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

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

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

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

然后
為啥人們一提到數(shù)據(jù)結(jié)構(gòu)就會(huì)提到算法呢
這是因?yàn)樗鼈冇兄?br />非常曖昧的關(guān)系
它們
相濡以沫相敬如賓相輔相成
可以說(shuō)數(shù)據(jù)結(jié)構(gòu)沒了算法就是擺設(shè)
算法沒了數(shù)據(jù)結(jié)構(gòu)就是有吉爾沒地兒使

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

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

ok今天就跟你說(shuō)這么些
最后的最后來(lái)跟你做個(gè)小小的互動(dòng)如果小帥b在這里用 Python?偶爾跟你扯扯算法的東東
你會(huì)?
那么我們下回見
peace

掃一掃
學(xué)習(xí) Python 沒煩惱
都看到這里了
不點(diǎn)個(gè)在看么
評(píng)論
圖片
表情
