面試指北:算法與數據結構(一)開篇

經歷過長久的停滯,碼字的念頭又跳回到我的大腦。可能是希冀記錄一下自己人生,畢竟人這一生如落花似流水;可能是受朋友激發,發現原來身邊也有同行者,在寫作上不再孤獨;可能是主動總結一下生活和技術經驗,算是對一段時間內的自己做下整理,就像把信息當作食物放進鍋裏煮,祈求能夠融會貫通,做出一頓美食,以飱讀者。好啦,字數湊完,以下進入正文。

本文主要內容:

  • 爲什麼要學算法與數據結構?
  • 算法與數據結構有哪些內容?

下期預告:

  • 如何學習算法與數據結構?

我們都知道算法和數據結構是計算機技術的基礎,但對於要牢牢掌握算法與數據結構我們可能心存疑問。學生可能會問:算法和數據結構學來何用,遠不如寫點網頁、Android 或者 iOS 來的直觀。社會人可能會問:寫了幾萬行代碼,沒用過算法和數據結構,學這幹啥?確實如此,理論和實踐比起來總是顯得更加遙遠。下面我來結合算法與數據結構在計算機技術知識中所處的位置和實際情況說一下爲什麼。

爲什麼要學算法與數據結構?

1. 它是內功,它是地基

如果把計算機各種技術比作武術,那算法與數據結構、操作系統、編譯原理、計算機網絡等等均屬於內功,而像各種工具如 IDE、Git 等等的使用、各種語言 API 屬於外功。

張無忌就是學了《九陽神功》才得以擁有快速學習掌握其他招數的能力,學乾坤大挪移之速度把美麗的小昭都看傻眼了。

建蓋樓房時,要想蓋的更高,地基也必須要打的更深纔行。這和你想成爲技術專家,必須掌握牢靠的基礎知識是一個道理。

你是否在擔心自己 35 歲失業?你是否在擔心技術更新太快來不及學習?熟練掌握計算機基礎知識可以說是此問題的命門所在。樹木生長枝椏不可能憑空長出來,都必須依靠上一個樹枝才能結出新枝。科技、文化亦是如此。不要懼怕新技術的浪潮把自己拍在沙灘上,因爲新技術也是從舊技術生長而來,其核心不會發生太大變化,只要你不是浮在表面,而是掌握了內在的原理,那你完全可以用很快的速度學習掌握新技術。如此,那還怕啥?

2. 它有用,它有大用

香農的信息論奠定了計算機的基礎。當今互聯網時代可謂信息瀰漫,電磁波載着各個終端的數據來回穿梭,我們確實活在信息的世界。在這個世界中,信息處理必不可少,而做這個事情就要用到算法。更何況,大數據時代對算法的高效要求更甚。

這也是一個移動時代,手機就像我們植入的硬件,已經無法離開。馬斯克的生物科技公司 Neuralink 在開發一種可以植入腦中的設備,和這種能夠生理上植入大腦的設備相比,手機已經植入我們的腦中,只不過是精神上的。我們的生活已經大大依賴於此,就像領土對於國家一樣,手機對於我們來說是不可分割的一部分。

說回我們日常用手機完成生活的很多事情,比如我們要點外賣,如何匹配到離店家最近的外賣員,又如何確定他可以在限定時間內送完手上的訂單?比如你要打車回家,如何選擇最合適的路線,不堵車不繞路?我們用搜索引擎搜索我們想要的內容,如何通過關鍵字匹配最優結果呈現出來?這些過程肯定要用到算法。

即日常用的 app 離不開算法,手機離不開 app,而我們離不開手機。

3. 大廠看重它

各個大廠面試都會考察算法與數據結構。諸如國內的騰訊、阿里、百度、字節跳動等等,國外的 Google、Facebook 更是要做好萬全準備纔可以去面試。

爲什麼大廠面試必考算法與數據結構?

因爲對於大廠來說,把你招進來不僅僅要看你當下的實力,更看重你的長期成長,也就是有沒有潛力。而正如第一點所說,計算機基礎是內功、地基,它決定了你的技術天花板,也就是你的技術潛力。

我們都希望能夠了解框架原理和設計思想,不滿足於僅僅做一個 API 調用者。而瞭解算法與數據結構之後,有助於我們理解框架中一些數據結構和算法的選用原因。

如果你希望做個泛泛之輩,那代碼能跑就行可能符合你的選擇。但如果你希望自己的代碼能夠不斷精進,那除了代碼風格、設計模式之外,對性能和內存佔用也要做到一定要求。而算法與數據結構能夠給你更多的思路和工具去提升性能、降低內存。

算法與數據結構包括哪些內容?

簡略版

如果你目標是入門,或者急於面試,掌握 10 個數據結構、10 個算法足以。

10個數據結構:數組、鏈表、棧、隊列、散列表、二叉樹、堆、跳錶、圖、Trie 數。

10 個算法:遞歸、排序、二分查找、搜索、哈希算法、貪心算法、分支算法、回溯算法、動態規劃、字符串匹配算法。

完整版

完整版則包含較多內容,不再一一羅列,參考思維導圖內容。

如果你需要文中思維導圖,可以關注公衆號 3.141516 回覆 算法與數據結構 獲取 xmind 源文件。

版權聲明
本文發於簡書,搜索作者 QinGeneral
同步發於CSDN博客,搜索作者 QinGeneral
同步發於微信公衆號:3.141516
無需授權即可轉載,甚至無需保留以上版權聲明;
轉載時請務必註明作者。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章