幾個(gè)簡(jiǎn)化算法理解的網(wǎng)站,進(jìn)來(lái)收藏!
上次推文(自學(xué)算法?這幾個(gè)網(wǎng)站和工具你挑一個(gè)吧)之后有小伙伴后臺(tái)留言說(shuō),算法難懂、數(shù)據(jù)結(jié)構(gòu)太抽象不好理解,作為一個(gè)過(guò)來(lái)人,我初學(xué)數(shù)據(jù)結(jié)構(gòu)與算法直接是啃的大學(xué)教材,這樣的學(xué)習(xí)方式不是適合所有人。
尤其是編程基礎(chǔ)比較差的同學(xué),后來(lái)我找到了「捷徑」學(xué)習(xí)方法,如果算法和數(shù)據(jù)結(jié)構(gòu)能夠以動(dòng)畫(huà)的形式呈現(xiàn),那該多好。
這就是算法可視化,下面就來(lái)分享幾個(gè)關(guān)于算法和數(shù)據(jù)結(jié)構(gòu)可視化的網(wǎng)站和項(xiàng)目。
Data Structure Visualizations
這個(gè)網(wǎng)站最大的特點(diǎn)就是對(duì)數(shù)據(jù)結(jié)構(gòu)的展示。你可以直觀的查看基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),比如數(shù)組、鏈表、隊(duì)列、二叉樹(shù)等的創(chuàng)建、刪除、查找過(guò)程,都是以動(dòng)畫(huà)的形式展現(xiàn),并且這個(gè)過(guò)程可以參與交互的,比如插入一個(gè)數(shù)字到二叉搜索樹(shù),你可以控制輸入?yún)?shù),直觀查看各種數(shù)據(jù)結(jié)構(gòu)的構(gòu)造和刪除過(guò)程。
用動(dòng)畫(huà)和交互的方式幫助加深對(duì)各種數(shù)據(jù)結(jié)構(gòu)的理解。


鏈接:https://www.cs.usfca.edu/~galles/visualization/Algorithms.html
visualgo
這也是一個(gè)數(shù)據(jù)結(jié)構(gòu)和算法動(dòng)態(tài)可視化網(wǎng)站,最大的優(yōu)點(diǎn)是支持中文,并且支持對(duì)算法的詳細(xì)說(shuō)明和講解,也可以查看算法的執(zhí)行過(guò)程。


鏈接:https://visualgo.net/zh
algorithm-visualizer
又一個(gè)算法可視化網(wǎng)站,這個(gè)網(wǎng)站的特點(diǎn)是界面看起來(lái)比前兩個(gè)清爽,不過(guò)不支持中文,這個(gè)也不是什么大問(wèn)題,主要是它提供了算法實(shí)現(xiàn)代碼,并且可以支持Java、JS、C++等多種語(yǔ)言,并且執(zhí)行過(guò)程和速度可控制,還能暫停播放,在控制臺(tái)也能看到算法執(zhí)行輸出的中間結(jié)果,我感覺(jué)用起來(lái)還是比較舒服。

鏈接:https://algorithm-visualizer.org/
算法動(dòng)畫(huà)圖解
上面介紹的是一些可視化網(wǎng)站,算法圖解還要推薦吳師兄的算法動(dòng)畫(huà)開(kāi)源項(xiàng)目,這個(gè)項(xiàng)目致力于動(dòng)畫(huà)圖解算法,把解法按 LeetCode 題號(hào)排序,用動(dòng)畫(huà)的形式呈現(xiàn)解題目的思路,目前已經(jīng)完成了大部分 LeetCode 原題的動(dòng)畫(huà)題解展示,動(dòng)畫(huà)制作和整理非常用心,如果哪天刷到一道難以理解的題,不妨來(lái)這個(gè)項(xiàng)目找找靈感,下面是部分題解動(dòng)畫(huà)截圖展示。

鏈接:https://github.com/MisterBooo/LeetCodeAnimation
今天分享就這么多,算法可視化,算法不可怕。

種一棵樹(shù)最好的時(shí)間是十年前,其次是現(xiàn)在

點(diǎn)擊閱讀原文,立即開(kāi)啟編程之路 點(diǎn)亮“在看”
