回覆列表
-
1 # 井151276607
-
2 # 大學生程式設計指南
從事軟體開發多年,資料結構是程式設計師的必備基本功,資料結構應該是演算法的基礎,演算法一般初學的時候很難理解,掌握演算法需要完成兩個步驟,真正瞭解演算法的本質就是從概念上理解,從理論上不掌握很難進行實踐,雖然程式設計行業講究的是實踐,在沒有準確的理論基礎上進行實踐類似於無頭蒼蠅,想要真正的掌握一種演算法,需要經過經過幾種步驟,第一掌握理論,第二用程式碼實現,第三回歸到演算法本身進行變通,如此反覆進行。
很多程式設計師在學習之初不太重視資料結構,但複雜的演算法都是在資料結構的基礎上堆積出來的,資料結構書本有關於C語言版本,有C++版本,java版本等等,資料結構是多種程式語言的基礎,所以有各種程式語言版本,演算法和具體哪種程式語言沒有直接的關係,脫離開程式語言而存在。樓主說到的演算法真的理解了,剩下就開始尋找對號的程式語言開始寫程式碼,如果覺得程式碼無從下手從邏輯上分析不會跑出兩個原因,其一演算法還沒徹底的理解;其二程式語言的基礎沒有掌握好,從理論轉化成實踐的能力還有待加強,需要對程式語言下功夫攻克。
這是要“破解”演算法的實現細節吧?還是覺得有進一步最佳化的空間?做這類工作要看有沒有單元測試程式碼和資料,從測試程式碼入手是個好切入口。如果沒有單元測試程式碼,可以從編寫程式碼和構建測試資料開始,當你能讓你的破解目標以肢解後模組形式執行起來時,你的工作可能就完成了。生啃原始碼,不適合複雜系統。透過理解關鍵入口引數及其準備過程,是生猛、有效的方法,不要強行推進,以免大腦過載,引發不適。多加反覆,短時間線上分析,多半時間思考分析,猜測原作者意圖。試試吧!