如果你成為一名程序員,你可能想學習算法和數據結構,特別是你沒有在學校學過這門課程。
但是,你在寫應用程序的時候,什么時候自己寫過鏈表?什么時候自己寫過排序?答案是:幾乎從不。
然而...
了解一些通過算法來解決棘手問題的策略,一點點的改善你的想法和代碼。
知道更多的數據結構,而不僅僅是標準的數組和字典,你會得到一個更大的工具箱,你可以用來構建自己的應用程序。
它會讓你成為一個更好的開發者! (和掙更多的錢?。?/p>
算法可以讓你辦你辦不了的事。
有一些應用程序我寫不出來,是因為一些根本問題我無法解決。
通常是速度上的問題:我的程序不夠快。 現在回想一下,遇到這些問題是因為選擇了錯誤的算法。 如果我早知道更多關于O(n)和O(n ^ 2)之間的差別,那么也許我就搞定了。
暴力解決方案適用于少量數據,但有時你需要處理大量數據。 然后你需要更聰明的算法。
有時候并不是速度問題,而是我根本不知道如何下手。 理解一點算法理論,你可以嘗試更多種方法。
算法不像聽起來那么可怕。
很多算法教科書從一大堆數學開始。 說真的,數學是有用的,但大多數時候你不會需要它。 所以不要讓數學嚇到你。 如果你會編寫代碼,你也可以理解所有這些奇特的算法和數據結構。
相信我,算法很有趣。 :-)
英文鏈接:
https://github.com/raywenderlich/swift-algorithm-club/blob/master/Why%20Algorithms.markdown