2019-11-25數(shù)據(jù)結(jié)構(gòu)和算法可視化動畫帶你輕松透徹理解!

學(xué)過數(shù)據(jù)結(jié)構(gòu)和算法的都知道這玩意兒不好學(xué),沒學(xué)過的經(jīng)常聽到這樣的說法還沒學(xué)就覺得難,其實難嗎?真難!

難在哪呢?當(dāng)年我還是個小蒟蒻,初學(xué)數(shù)據(jù)結(jié)構(gòu)和算法的時候,在忍著枯燥看完定義原理,之后想實現(xiàn)的時候,覺得它們的過程真的是七拐八繞,及其難受。

在簡單的鏈表、棧和隊列這些我還能靠著在草稿上寫寫畫畫理解過程,但是到了數(shù)論、圖論的時候,中間實現(xiàn)的過程步驟開始劇增,那個時候靠寫寫畫畫和對程序的單步調(diào)試強行理解,作為一個智商一直被壓制的慘人,稍不注意就會重新來過,陷入死循環(huán)…

后來搞 ACM 之初,我的隊友給了我一個數(shù)據(jù)結(jié)構(gòu)模擬器的壓縮包(后來知道好像是嚴蔚敏數(shù)據(jù)機構(gòu)那本書光盤里帶的),里面是對一些數(shù)據(jù)結(jié)構(gòu)的模擬操作,一步步的很形象,有些東西好像一下子就通了…

這種可視化的動畫真的對我們理解數(shù)據(jù)結(jié)構(gòu)和算法非常有幫助,尤其是在學(xué)習(xí)之初,堪稱很好的防勸退工具,所以我對這些做了一些整理,希望能幫助到你。

0x00 數(shù)據(jù)結(jié)構(gòu)在線模擬器

Github 這個在線的模擬器包含“棧”、“隊列”、“堆”、“BST” 等數(shù)據(jù)結(jié)構(gòu),每個數(shù)據(jù)結(jié)構(gòu)以圖像的方式展示在我們面前,同時又有各自的幫助文檔,可以用鼠標(biāo)對數(shù)據(jù)節(jié)點進行拖拽,還可以實現(xiàn)各種數(shù)據(jù)結(jié)構(gòu)的增刪改查。

還有一點好的是,這個網(wǎng)站還伴隨著一些數(shù)據(jù)結(jié)構(gòu)的教學(xué)材料、簡要的復(fù)雜度分析、數(shù)據(jù)結(jié)構(gòu)使用實例,對于理解各種數(shù)據(jù)結(jié)構(gòu)的原理及運用可以說是相當(dāng)絲滑了…

網(wǎng)站上還帶著使用說明和產(chǎn)品簡介,可以說是相當(dāng)貼心了…

隨便點開一個“堆”的,大家體驗一下,是不是想趕緊用起來啦…

0x01 VisuAlgo

可以說是知名度比較高的一個通過動畫學(xué)習(xí)算法和數(shù)據(jù)結(jié)構(gòu)的網(wǎng)站了,它最初的建立就是通過可視化讓學(xué)生更好的理解數(shù)據(jù)結(jié)構(gòu)和算法。

VisuAlgo 的功能更豐富,它包含了很多的數(shù)據(jù)結(jié)構(gòu)和算法,從簡單的到復(fù)雜的都一一包含,而且對于一些新出現(xiàn)的算法也有涉獵,通過可視化動畫的方法,幫助我們更輕松透徹的理解算法及原理,尤其是對一些通過文字描述很難理解的算法而言,簡直是生命之光。

VisuAlgo 還支持搜索和多種語言的切換,英語不好的同學(xué)可以切換成中文,但是現(xiàn)在有一些算法中文翻譯的并不全,所以如果能看英文的話還是建議看中文的。

我們隨便點開一個排序來看,可以看到它包含之多,還帶文字講解、單步、回退、暫停等功能,真的是功能豐富且強大,當(dāng)然它不止于此,還包含著更多的東西等著我們?nèi)ネ鎯海s緊行動起來吧。

0x02 Data Structure Visualizations

這是舊金山大學(xué)的一個數(shù)據(jù)結(jié)構(gòu)和算法的可視化工具,不過它涉及的內(nèi)容沒有 VisuAlgo 多,不過也涉及了很多常用的數(shù)據(jù)結(jié)構(gòu)和算法。

我們隨便打開一個“棧”,左上角就有 Push(進站)、Pop(出棧)、Clear Stack(清空棧),下面可以設(shè)置對動畫的一些參數(shù),關(guān)于具體的使用,還需要大家多做嘗試:

0x03 Algorithm Visualizer

Github 同樣包含了很多可視化的數(shù)據(jù)結(jié)構(gòu)和算法,包括動態(tài)規(guī)劃、加密算法、回溯算法等,這個項目在 Github 上有 25k+ 的 Star,足以見得它的受歡迎程度:

同樣隨便點開一個“

二叉搜索樹”,包括演示區(qū)域、過程數(shù)據(jù)記錄和代碼演示的部分,而且在代碼演示的部分,動畫執(zhí)行到某步的同時代碼執(zhí)行處也會同步,既可以理解代碼也可以理解算法原理和過程,真的是相當(dāng)棒!

0x04 LeetCodeAnimation

這個是我的好朋友程序員吳師兄(五分鐘學(xué)算法)維護的項目,在 Github 上已經(jīng)有了 44k+ 的 star,屬于頭部中的戰(zhàn)斗機。

這個項目致力于用動畫的形式呈現(xiàn)解LeetCode題目的思路,我們學(xué)數(shù)據(jù)結(jié)構(gòu)與算法,就是為了用,在實際具體的實操環(huán)境中往往更能加深對理解,在應(yīng)用中理解,在理解中應(yīng)用,才能更快的掌握。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,030評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,310評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,951評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,796評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 71,566評論 6 407
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,055評論 1 322
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,142評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,303評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,799評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,683評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,899評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,409評論 5 358
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,135評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,520評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,757評論 1 282
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,528評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 47,844評論 2 372

推薦閱讀更多精彩內(nèi)容

  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴謹 對...
    cosWriter閱讀 11,120評論 1 32
  • 淡淡的月光靜靜灑滿孤窗 今晚的夜色又如水冰涼 我佇立窗前為你苦苦思量 牽掛的你卻身在遠方 淡淡的憂傷輕輕落滿心房 ...
    鈍角閱讀 565評論 6 37
  • 昨天大半天就在為聯(lián)系去莎車取共管賬戶錢的事,聯(lián)系財務(wù)人員及定機票等事宜,可以說我是在中間傳遞和聯(lián)絡(luò)工作,感...
    快樂天使_快樂飛翔閱讀 158評論 0 0
  • 前段時間一個朋友向我求助,說她連續(xù)失眠兩個星期了,問我有沒有什么好的方法; 結(jié)果很遺憾,那段時間我也正因睡眠質(zhì)量不...
    初若簡閱讀 2,160評論 2 4
  • 動漫中那些用生命在把妹的男主,最強的連妹妹都推倒了! 春日野悠《緣之空》 自從雙親去世后,就一直疲于生活。因為雙親...
    東方二次元閱讀 2,209評論 0 0