1. 程式人生 > >一道演算法題引起的疑惑——如何“畫”演算法(附免費視訊連結)

一道演算法題引起的疑惑——如何“畫”演算法(附免費視訊連結)

【來信】
賀老師好:
在這裡插入圖片描述
  我在做這道題目的時候,寫了好多次都沒成功,然後我就看別人的帖子,也看的模模糊糊的。
  然後我搜索到了您的這篇帖子: 在這裡插入圖片描述
  我嘗試著找到了自己的原因:以前只是模模糊糊的瞭解連結,但是並沒有自己實操過,所以我找了些連結串列的帖子從頭學一遍。
  對於第二個原因,也是我自己解決不了的,演算法過於抽象,然後我嘗試著畫圖:
在這裡插入圖片描述

畫來畫去,思路挺亂的,也沒畫出個所以然來,應該是我的方式和思路不正確吧。
  請教一下賀老師,這種多個指標頻繁移動的,或者類似的演算法,應該如何畫圖才能順利的進行下去!

【回覆】
  看了一下你畫的。要畫演算法,就是要將每一個細節都畫出來,感覺你的大腦就是CPU,紙就是記憶體,每一點變化都要標出來。在一個位置上畫亂了,不妨花點時間,再在一片“乾淨”的地方畫。
  看你畫出的內容,其中忽略了不少步驟,在你的潛意識中,那些步驟你明白了,而實際上,恰好就是這些你覺得懂了,但真的不懂的地方阻礙了你懂。或者,你懂了的沒畫,而這一部分,與你不懂的不能產生關聯,白懂了,對理解你不懂的地方沒有貢獻。以至於,都畫了,還不懂,反而讓自己喪氣。
  所以,做起來也簡單,學會讓自己的大腦成為CPU,讓紙變成記憶體,每一點變化都落在紙上。初畫時慢,習慣了,其實當這樣的訓練足夠多時,腦袋裡也就能形象地將這個過程構造出來了,你會發現,演算法真的不抽象。
  大概,別人嘴裡抽象的東西,在你眼裡那不是很生動的嗎?這需要自己做訓練。
  隨回信分享幾個我的線上課程中的視訊,從中可以看到如何去畫。

附:我的CSDN學院課程