關於演算法的一點思考。。。

2021-07-15 05:21:16 字數 550 閱讀 9486

關於演算法的一點思考。。。

在實踐過程中,我發現:有時候要解決乙個問題,可以設計幾個演算法分步完成任務,這樣處理起來比較簡單,但是情況並非總是如此,有時,我們需要將幾個步驟放在同乙個演算法內連帶處理,這樣才比較容易處理問題。

我還發現,有時候,解決問題的演算法,是被發現出來的,並加以一步一步的檢驗才得以確定的,而非通過各種理論證明計算出來的,當然,有些演算法也需要理論支援,不過它們也必須先被發現才行。

從這個角度來看,先有 發現 ,後有 檢驗,必要時 加以理論分析證明 ,才有 演算法。

不要拘泥於證明,而要重視 發現 與 檢驗。

還有,在編寫較大的程式,一定要先建立乙個主框架,在此框架內將所要用到的函式逐一列出,注意順便把引數、返回值之類的介面一併附上。然後逐一完善,這理所當然是自上向下程式設計。為了減少程式設計錯誤,強烈建議每一次完善過後,就編譯鏈結一次。實踐證明,這是非常有效的程式設計方式。另外,不要熬夜,熬夜只會讓自己精力消耗殆盡,寧可早點起床工作,也不要熬夜趕工。

做任何事情,都要把握好層次這個關鍵因素。

其實,問題可以很複雜,也可以很簡單。

收藏於 2009-04-11

一點關於KMP演算法的思考

演算法用途 匹配字串。給定乙個模式串 pattern string ababc 乙個待匹配串 abababc 最樸素的方法就是兩層迴圈,從左到右依次比較,時間複雜度為o m n kmp演算法 給定乙個模式串 pattern string ababababc 觀察模式串 如果有乙個待匹配串是am,第2...

關於makefile的一點思考

在gnu編譯工具軟體中,如果對單一的原始檔進行編譯,可執行指令如下 gcc o x x.c 此指令會將原始檔編譯為目標檔案。若是對執行緒類檔案進行編譯,則在末尾加上 lpthread指令。但若是對多檔案進行編譯,即若是編譯的目標檔案同時包含另一檔案中的函式。則在編譯的時候需將另一檔案加到編譯原始檔中...

關於指標的一點思考

指標是乙個變數,所不同的是,它存的是位址。因為資料型別決定著如何解釋這個位址 位元組數和操作 因此根據的資料型別的不同,指標又有不同的型別。某個物件 a 的位址範圍為 a,a size n 其中size n是a所佔的位元組數 比如乙個一維陣列int a 10 位址範圍為 a,a 10 sizeof ...