算法是我2年前就想 好好學的一門功課,可真的學的時候,發現這門功課我很難靜心去學,反覆的問自己是不是能搞好算法這塊料。
這2年多,一提到算法我就頭疼,原因是我喜歡尋找高效的解決方案,但在算法這塊,我覺得太高深,我無法理解了書本上的內容,並且我只
用c#語言開發,研究的是面向對象,算法都是從面向對象的角度思考的。我這麼說不知道前輩們怎麼看,也許我的深度還比較淺,望各路豪
傑多賜教。
今天跟一哥們探討了下算法是什麼,我說算法是數學,有公式,有思維,有一定套路可循。他說是讓計算機理解的,可以形式地表現出來,
節省時間,空間複雜度的東西,屬於計算機範疇的。他說完之後,我立即同意。但我還認爲算法其實還是數學。
繼續寫,
今天找了點資料貼上來:
算法是研究適合計算機程序實現問題解決的方法。
一般認爲,算法是一組明確的、可以執行的步驟的有序集合。"有序集合"說明算法中的步驟是有順序關係的。
算法中的每一步驟還必須是明確的,模棱兩可的步驟不能構成算法。
使用計算機來解決問題的時候,有時會面臨多種可能的解決途徑。而選擇不同的解決途徑可能會有不同的問題求解效率。
把算法變成程序,
有許多事情要做。首先要考慮問題中數據的表達,要考慮:如何表達整數序列;
其次將算法過程用程序設計語言中的控制語句來實現(主要是循環控制與條件控制)
最後,要仔細設計與用戶的交互(主要是數據的輸入與輸出)。
在程序實現中,數據的組織(數據結構)與算法是密切相關的、互爲依賴的。好的數據結構有可能會導致一個高效率的算法.
PS:以下這是我第三次更新。
準備考軟考的軟件設計師(一個知識面廣,但不深的一門考試),買了軟考的教材和輔導書,兩本書都有對算法的精彩講解和典型例題,我覺得這本書比較適合我,我也從 這2
本書中瞭解到了什麼是動態規劃法,貪心法,回朔法,但我還需要時間才能應用他們並有非常清晰的解題思路,我是個頭腦比較慢的人,只能反覆琢磨才能領悟點精髓。現在我
已經上路了,已經很開心了。