對於「算法」的第一印象,我相信大部分人都是同樣的,就是一個「難」字了得。html
而我比較特殊,個人第一印象、第二印象以致第 N 印象都以爲很難,因此爲了更好的學習和理解算法,我千金一擲一下買了一堆的算法書,有圖爲證:算法
但說實話,效果不是很好,因而磊哥就琢磨有沒有更簡單的學習算法的方法?沒想到還真被我找到了,真實應了那句老話「瞎貓碰到死耗子」,呸、不對,是「苦心人天不負」。數組
那究竟如何輕鬆的學習算法呢?答案就是下面要介紹的這幾個網站。數據結構
有了這幾個網站就可讓你以動畫的形式,看到算法的具體執行過程和數據的具體結構,還有算法的文字講解以及算法的具體實現代碼,接下來一塊兒來看吧。工具
一個數據可視化和算法可視化的網站,用它能夠生成各類各樣的數據結構,模擬它們添加和刪除的過程,並且還能夠用它來演示算法的執行過程。學習
好比,咱們用它來模擬一個二叉搜索樹,以下圖所示:測試
咱們再用它來演示一下快速排序算法,以下圖所示:動畫
Data Structure Visualizations 包含了不少的內容,如:常見的數組、鏈表、隊列、二叉搜索樹、紅黑樹、各類排序等,以下圖所示:網站
www.cs.usfca.edu/~galles/vis….net
此網站包含了更多的算法,這個從首頁就能夠看出來,不只如此,它還支持關鍵字檢索,以下圖所示:
此網站除了能夠以動畫的方式演示算法以外,還包含了算法的文字講解,以下圖所示:
接下來咱們演示一下冒泡排序的執行過程,以下圖所示:
此網站也支持不少算法,而且此網站提供算法的具體代碼實現,它支持的語言有:Java,C++,JS 等,還有控制檯也會輸出整個執行的過程,能幫你更好的理解算法,以下圖所示:
咱們用它來演示一下冒泡排序的執行過程,以下圖所示:
有了這些可視化工具以後,咱們就能夠更簡單的學習算法了,這三個網站各有春秋,你能夠使用 Data Structure Visualizations 來了解數據結構,使用 VisuAlgo 和 algorithm-visualizer 來查看算法的具體執行過程,並使用 algorithm-visualizer 來查看算法的具體實現代碼,真是很是方便,趕快去試試吧。
關注公衆號「Java中文社羣」回覆「乾貨」,獲取 50 篇原創乾貨 Top 榜。