回鍋DS-5:將演算法過程與程式碼分離開解決
現在又有個新的感悟,忍不住給您發郵件分享一下。
我在看您的資料結構課程。到圖這一節的時候,我開始運用您的“給自己不斷的設一個跳起來就能夠得著的目標”,我每次看一個新小節的時候,我就想如果我做的話會怎麼做(當然,大多數情況下是無果的)。
而且我看完了當時理解了,我會自己寫一遍。接著學著後面的我會想著前面的,隔一段時間在問一下自己如果現在讓你寫前面的xxx,你還能寫出來嗎。
就是再這樣的過程中,我把圖的DFS熟悉了好多次,我也在想為啥很多人會覺得演算法難(包括我自己,不過現在覺得沒那麼難了),估計很多人不知道難在哪裡。
以我個人的經歷,我認為,難點一:是解法的過程不好想,難點二:是當時會了,過一段就又容易遺忘。
對於難點一,沒辦法,只能靠個人的積累和悟性。對於難點二,我覺得是可以解決的,之所以會出現難點二,是很多人覺得自己理解了,只是當時理解而已,或者看別人的東西當時也似懂非懂,但是趁著那股熱乎勁,能夠勉勉強強的把演算法寫出來。
所以對於難點二,我現在就是利用您的“抽象方法”,儘量把演算法的過程和具體的程式碼脫離開,不讓具體的程式碼影響演算法的過程(今天中午才理解的比較透徹)。昨晚和今天中午我把DFS的過程自己想了想,然後用筆寫了出來,昨晚的那個比較粗淺。今天中午又寫了一遍,突然感覺豁然開朗。具體的演算法用漢語描述還是很簡單的,但是很多人就是把這個漢語的描述和具體的程式碼混淆在了一起,所以會出現類似“瞎撞”的情況。
如圖,自己練習的時候自己比較潦草。右邊的過程寫完後,我就想起了您的視訊,我開啟視訊一看,和您的視訊中的一致。之前看視訊的時候其實看到這個中文片段的時候並未那麼重視。但是這就是精髓所在了。如果學習的過程學完後,能把這個過程也自己用漢語寫出來,剩下的就是用具體的程式語言翻譯一下吧(之前做的時候是兩個過程混在一塊,現在是翻譯寫好的過程,其實是很簡單的事情了)。
另外這兩天在構思一篇文章,以圖的應用引出我的這個思考。然後把工作中個人理解的演算法和業務程式碼的聯絡(雖然有點弱,甚至說是沒有太直接的聯絡)說一下。
附:
回鍋DS-4:回頭看的感覺
回鍋DS-3:基本操作與指標體驗
回鍋DS-2:做專案中的思考
回鍋DS-1:對抽象之用的感悟及讓自己更有力量的思維方式
相關文章
- js程式碼與html程式碼分離示例JSHTML
- 通過MVC模式將Web檢視和邏輯程式碼分離MVC模式Web
- HanLP程式碼與詞典分離方案與流程HanLP
- oracle儲存過程分頁程式碼Oracle儲存過程
- ORACLE高效分頁儲存過程程式碼Oracle儲存過程
- 程式碼的分離與解耦,向移動架構師進階!解耦架構
- 如何將過程程式碼變成物件導向的程式碼? - WLODEK物件
- 簡單程式碼:將回歸特徵轉換為分類特徵特徵
- 前後端分離-根據程式碼講解思路後端
- asp.net利用儲存過程分頁程式碼ASP.NET儲存過程
- Solid - 將資料與應用分離Solid
- 程式碼提交過程
- 通過nginx部署前端程式碼實現前後端分離Nginx前端後端
- php配置檔案與程式碼分離的實現思路PHP
- 修改labelme原始碼,解決粘連mask分離問題原始碼
- 麻將遊戲開發全過程步驟瞭解遊戲開發
- JSP開發過程遇到的中文亂碼問題及解決方案JS
- 程式碼審查過程
- Java 記憶體洩露的理解與解決過程Java記憶體洩露
- 第四篇:決策樹分類演算法原理分析與程式碼實現演算法
- 無需CORS,用nginx解決跨域問題,輕鬆實現低程式碼開發的前後端分離CORSNginx跨域後端
- 原始碼編譯,Apache DolphinScheduler前後端分離部署解決方案原始碼編譯Apache後端
- crontab失敗的解決過程
- git倉庫與專案原始碼分離Git原始碼
- .NET 程式碼編譯過程編譯
- 一次面試回顧——探討表現與資料分離面試
- asp.net SQL Server 儲存過程分頁及程式碼呼叫ASP.NETSQLServer儲存過程
- TiDB 冷熱儲存分離解決方案TiDB
- 前後端分離解決跨域問題後端跨域
- 前後端分離 跨域問題解決後端跨域
- 大資料儲存解決方案中的分離式與超融合部署大資料
- 深入瞭解View的事件分發過程View事件
- 回鍋開源情懷下的專利鹹豬手
- workerman開發過程中遇到的一些常見的問題與解決方法
- Adobe 系列安裝過程中出現錯誤程式碼107解決方法
- 一個lua問題解決過程
- ORA-01461解決過程
- Docker殺掉了容器?問題分析與解決過程全面覆盤Docker