回覆列表
  • 1 # 大學生程式設計指南

    演算法是程式的靈魂,架構是靈魂的軀體,最近對這兩句話感觸很深,但很多程式設計師甚至忽略演算法存在,更不要說是架構層面的東西,有些程式設計師甚至有些疑問,做程式設計也有幾年了碰到關於演算法的東西實在是很少,平時用到的演算法主要存在兩個方面的原因:一種是裡面涉及的程式設計裡面可以用更好的演算法來代替但是本身由於意識層面的問題,感覺不到可以採用更加優秀的演算法,時間久了忽略了演算法的真實存在;第二種本身工作上觸及到的演算法比較少,感受不到演算法的重要性。

    資料結構和演算法在實際程式設計中作用

    演算法一般用在圖形換算或者提升換算效率的地方。就拿一個普通的系統,一般真正使用演算法的地方相對比較有限,但真要遇上如果沒有點演算法基礎也是搞不定,正常來講一個專案組內有一個演算法比較不錯的人就足夠正常的運轉,如果沒有現學現賣基本上搞不定,簡單的演算法除外。在真實的程式設計環境中成品的演算法未必直接拿過來就好用,很多時候需要自己來實現,最差也需要定製演算法,不要存在僥倖的心理,真正需要玩演算法沒有基礎會相當痛苦。

    資料結構不僅僅是演算法基礎還是程式設計的綱領。在學習演算法之前首先要掌握資料結構,因為資料結構裡面很多基礎,像佇列,棧,連結串列,二叉樹這些都是演算法基礎,因為再複雜的演算法也是基礎的東西組合起來的,複雜的演算法涉及到數學知識了,所以專業的演算法工程師需要具備良好的數學底子。但資料結構更多是用在功能模組裡面程式設計模型的設計上,有些程式設計師在設計模組功能的時候,首先會設計標頭檔案,因為標頭檔案包括結構體,變數以及宏定義都是在標頭檔案中設計完成,一個模組的基本功能在標頭檔案出來之後什麼事情都會變得順理成章,資料結構裡面的一些基本元素像連結串列都是在設計基本模組功能所必需。

    有經驗的程式設計師很少直接寫程式碼,都是在構思設計思路,然後查閱各種資料,最後寫程式碼的時間只佔很小一部分,大部分時間都是在設計模組的資料結構,就是結構體裡面變數傳遞的來龍去脈,所以講資料結構是程式設計師必備常識,至於演算法如果追求極致點必須要專業來學,普通的演算法可以作為程式設計師也是必備的。

    如何學習演算法

    學習演算法需要具備一定的基礎,專業類的演算法必須要有數學基礎,或者下足夠的功夫才能達到,正常的程式設計師要掌握一般的演算法以及資料結構知識。學習演算法需要有個長期規劃,不要指望著很短的時間內就把演算法搞定,如果有機會最好在大學期間開始學習演算法。

    先從基本的資料結構學習起來,掌握基本的資料模型,然後開始學習基本的演算法模型,慢慢深入進去學習,演算法的學習沒有什麼捷徑關鍵在於理解的基礎上進行實踐,效果會非常好,不要上來就買本演算法導論在使勁研究,結果看了沒有多長時間就把自己看暈了慢慢就放棄了。

  • 中秋節和大豐收的關聯?
  • 藍色車牌和黃色車牌號碼一樣,有區別嗎?