演算法入門,心得體會篇(1)附送演算法資源

演算法入門,心得體會篇(1)附送演算法資源

3 人贊了文章

最近在研究演算法,跟很多剛入門的朋友一樣。

談談自己的一些新的體會,另附送初級演算法資源(要的朋友下面有鏈接):

其實剛開始的很多時候,自己並不知道演算法對於程序來講有什麼重要性,相信很多剛剛步入編程領域的小白跟我一樣,懵懵懂懂,不知道從哪裡入手。以前上課的時候,老師布置的作業,老師布置的任務。對著書做,去編程,似乎都很簡單,基本上都不需要花多少時間,我們就能把作業完成。考試的時候,分數也挺高。

我們就沒有過多的注重演算法本身,很多時候,我們注重的是編出來的小程序能不能實現我們想要的效果。但是事實上,一般教材裡面的演算法都很簡單,我們編出來的小程序其實也很low,我們自己很多時候並沒有覺察到,真正的不會做的時候,我們稍微百度一下,就能解決問題。哈哈,現在想想那都是錯覺。

稍微百度一下就能解決的演算法很多時候並不能代表什麼?只能說它簡單。當然,簡單的東西有時候很實用,也很有意義。我並非否定哪些簡單的演算法,我只是在網上奮戰了3天才學會一個以前從未接觸過的vibe演算法之後,突然發現自己以前學的很多東西都很low,真的刷新了我對演算法的認識,讓我從新去理解,去看待演算法,因此寫下了這篇博文!

(希望看到我這篇文章的朋友能夠從新認識一下演算法,那我就沒白寫這篇文章啦(傻笑))。

我花了一上午的時間學習,認識演算法。得到了以下一些總結:

1、演算法是什麼?

讓我們來看看演算法的定義吧。(以下定義摘自中文維基百科)

在數學和計算機科學/算學之中,演算法/演演算法/算則法(Algorithm)為一個計算的具體步驟,常用於計算、數據處理和自動推理。精確而言,演算法是一個表示為有限長列表的有效方法。演算法應包含清晰定義的指令用於計算函數。

演算法中的指令描述的是一個計算,當其運行時能從一個初始狀態和初始輸入(可能為空)開始,經過一系列有限而清晰定義的狀態最終產生輸出並停止於一個終態。一個狀態到另一個狀態的轉移不一定是確定的。隨機化演算法在內的一些演算法,包含了一些隨機輸入。

形式化演算法的概念部分源自嘗試解決希爾伯特提出的判定問題,並在其後嘗試定義有效計算性或者有效方法中成形。這些嘗試包括庫爾特·哥德爾、雅 克·埃爾布朗和斯蒂芬·科爾·克萊尼分別於1930年、1934年和1935年提出的遞歸函數,阿隆佐·邱奇於1936年提出的λ演算,1936年 Emil Leon Post的Formulation 1和艾倫·圖靈1937年提出的圖靈機。即使在當前,依然常有直覺想法難以定義為形式化演算法的情況。

ps:太高大上,其實我也不理解,表示不喜歡複製粘貼

在我看來,演算法,它是一個程序的核心思想,是一個程序的靈魂!

我記得我數據結構的老師經常跟我們講:「程序=演算法+數據結構,所以你們得好好學習數據結構啊!」,當時大家都不屑一顧,其實我當時就是這樣想的(笑臉)。現在回過頭來,數據結構很重要,演算法確確實實也很重要。因為那個時候編的東西還很low,基本不需要考慮這些,所以眼光比較狹隘!(希望看到我這篇文章的朋友能夠從新認識一下演算法跟數據結構的重要性,我就沒白寫這篇文章啦(傻笑))。

2、演算法由什麼組成?

這個大家可以自行百度!上面有很官方的解釋,我就不抄了,我在這裡談談自己的一點點理解想法(歡迎大佬指正,交流!)

在我看來,演算法包括3個部分:

1)、參數:參數主要分為2個大類,分別是(輸入參數和輸出參數)(固定參數和變數),無論什麼時候,先明確下來,我要實現這個演算法,需要哪些參數,這是做研究的基礎!!!

2)、核心計算:不同的演算法有不同的計算規則,但是這些計算規則都是建立在上一步的那些參數的基礎之上,包括很多計算,本質就是在計算這些參數中的一部分;還有就是比較,通常不同的參數會有比較結果出來!(很淺)

3)、數據的存儲分析:通過演算法之後,我們會得到一些我們想要得到的參數。這裡先明確一點,我們需要什麼,這一點很重要!得到這些參數數據之後,我們得把它們存儲起來,或者說用什麼表現形式(表,圖還是簡簡單單的數字)。這些都得因程序的要求而定,我講的主要是思想,具體的實現,還需要大家仔細的研讀演算法!

這第一篇博文,講的其實不是很透徹,主要是對於那些剛接觸演算法入門的朋友,有一定的啟發意義。

程序並不重要,關鍵是演算法。

ps:附上資源(全部免費,有贊就最好不過嘍!!!)

matlab經典演算法pan.baidu.com/s/1cyHF99

經典演算法大全pan.baidu.com/s/1IiI632

數據挖掘十大經典演算法:pan.baidu.com/s/1qyy5Vb


推薦閱讀:

數學分析外篇(二)
將數學玩弄於兩手之間
C++: mutable 關鍵字
從詞嵌入到含義嵌入:概覽含義向量表示方法

TAG:數學 | 科技 | 演算法書籍 |