趣說:什麼是數據結構和算法


​相信你的電腦裡面

應該有這麼一個

視頻教程文件夾



不用我說

在這裡面肯定是你

精心收藏的精華教程



不辭辛勞的你


按照每個優秀的老師

都分門別類的安排好

每一系列的精品教程



當你心血來潮之時

亦或是求知慾旺盛之時

你會去這個文件夾裡面

尋找優秀的教程加以學習


可能你會按照老師的名稱查找

也可能你會按照你喜歡的姿勢查找

...


不管怎麼樣

你終歸找到了教程

學習了 1 分鐘

然後就快樂的完事了



你可能要問了

這特麼和數據結構算法有個毛線關係?


其實

你對文件中的教程

分門別類的存儲

就是一種數據結構


你通過不同的方式去

文件夾裡面查找教程

這方式就是一種算法



具體來說

數據結構就是

對數據按照一定的規律進行組織和存儲


對數據如何安排取決於你


你以什麼樣的方式安排存儲數據

你得到的就是什麼樣的數據結構


比如你以這樣的關係存儲數據


名稱出道時間(年)蒼井空2002小澤瑪利亞2005波多野結衣2008......


你看

定義了名稱和年份

然後把具體的數據收集好

存儲在這張表中


那麼這張表就是數據結構



這時候你可能會想到

Python 中的類 Class

你之前在 Class 中

定義的一些屬性


比如:



這也是一種數據結構的定義


你知道的 Python 數據類型

如:Number/String/List..

它們也都是一種數據結構


當然

在數據結構中

比較典型的有


數組、棧、圖、樹、鏈表等等


它們都有各自的規律

去安排數據的存儲



而算法呢

就是按照特定的指令

以一定的邏輯

按序列去完成指定的任務


所以算法更強調的是

“邏輯方法”


當然,前人在搞算法的時候

已經留下了不少算法秘籍


比如:

二分查找、排序、遞歸、貪婪、動態規劃等等



然後

為啥人們一提到數據結構就會提到算法呢


這是因為它們有著

非常曖昧的關係


它們

相濡以沫

相敬如賓

相輔相成


可以說數據結構沒了算法

就是擺設


算法沒了數據結構

就是有吉爾沒地兒使



好了

道理我都懂

那麼數據結構算法

它們和 Python 有什麼關係呢?


沒有半毛錢關係

或者說關係不大


放心

Python 不是它們的小三


因為數據結構算法

並不是完整的代碼


更多的是

如何解決問題的邏輯方法


而這些是可以通過代碼去描述和實現的


所以呢

Java、C、Python等等語言都可以上


只不過

Python用的人多

語言相對簡單

用它來描述算法相關是個不錯的選擇



最後你可能會問了

數據結構和算法

有個毛線用啊?


額..

是基本功

是一種思想

是看懂框架代碼的前提

是解決問題的套路

是水平的體現

是面試的門檻...



ok

今天就跟你說這麼些


最後的最後

來跟你做個小小的互動

如果小帥b在這裡用 Python

偶爾跟你扯扯算法的東東


你會?


那麼我們下回見

peace


掃一掃

學習 Python 沒煩惱



都看到這裡了