生命不是要超越別人,而是要超越自己。作為乙個對演算法沒有任何認知,非科班出身的前端程式設計師,如果想提高自己的能力,不再只寫業務**當乙個應用工程師,演算法是必須掌握的一門本領。演算法也是一種思想,當你去讀一些優秀框架的原始碼,如果對演算法和資料結構一無所知,讀起來很困難,你無法理解人家為什麼要那樣寫,那樣寫的好處是什麼,接下來就跟大家分享下作為乙個前端程式設計師,如何學習資料結構與演算法。
演算法就是計算或者解決問題的步驟,演算法與程式有些相似,區別在於程式是以計算機能夠理解的程式語言編寫而成的,可以在計算機上執行,而演算法是以人類能夠理解的方式描述的,用於編寫程式之前。不過,在這個過 程中到**為止是演算法、從**開始是程式,並沒有明確的界限。
就算使用同乙個演算法,程式語言不同,寫出來的程式也不同;即便使用相同的程式語言, 寫程式的人不同,那麼寫出來的程式也是不同的。
計算機是乙個冰冷的機器,操作者下發什麼指令,計算機就會執行什麼操作開發者要做的只是如何把實際問題轉換成計算機可識別的指令,如何轉化?《資料結構》的經典說法:設計出資料結構,在施加以演算法就行了。開發者編寫的指令好壞,將直接影響到程式的效能,指令又由資料結構和演算法組成,因此資料結構和演算法的設計與最終程式的好壞息息相關。
書中沒有使用任何程式語言,有豐富的配圖來講解演算法和資料結構,作為乙個小白,看這本書最為合適。
本書從js角度出發,講解常用演算法和資料結構。相對於前端而言,這本書可以讓你理解演算法和資料結構在前端的應用。
這兩本書採用其他程式語言講解,學習完前兩本書後,再來看兩本書可以更深層次的理解演算法。
可以在書中學習很多經典題目,練的多了會總結出每種演算法的規律,掌握書中的內容後,再去解leetcode上的題會輕鬆很多。
先從簡單的題開始解,慢慢進入中等難度。中等的題目可以解決時,已經對典型題目有了很深的見解,此時再去解決更複雜的問題時,就可以活學活用,根據規律來解決問題。前端該如何準備資料結構和演算法
awesome-coding-js
資料結構與演算法 01 如何學習資料結構與演算法
過於學術的概念定義比較抽象,難以理解。我們從廣義和狹義兩個層面,來理解資料結構與演算法這兩個概念。從廣義上講,資料結構就是指一組資料的儲存結構 怎麼放 演算法就是運算元據的一組方法 怎麼用 我們以圖書館的場景為例來進一步理解 圖書館書籍量十分巨大,首先要分類設定閱覽室,譬如社科類 科技類 報刊類等。...
資料結構之如何高效學習資料結構與演算法
資料結構我覺得就是指一組資料的儲存結構 演算法就是運算元據的一組方法 資料結構是為演算法服務的,演算法要作用在特定的資料結構之上 學會複雜度分析。相當於武功的心法 但是不用全掌握,要掌握重點 這裡面有 10 個資料結構 陣列 鍊錶 棧 佇列 雜湊表 二叉樹 堆 跳表 圖 trie 樹 10 個演算法...
如何學習資料結構和演算法
首先掌握常用的 基礎的。然後在此基礎上往進行擴充套件學習。常用的 基礎的資料結構和演算法有20個。資料結構 陣列 鍊錶 棧 佇列 雜湊表 二叉樹 堆 跳表 圖 trie樹 演算法 遞迴 排序 二分查詢 搜尋 雜湊演算法 貪心演算法 分治演算法 回溯演算法 動態規劃 字串匹配演算法。這些需要一一攻克。...