算法的英文名稱是Algorithm,這個詞在1957年以前在Webster's New World Dictionary(《韋氏新世界詞典》)中還未出現,只能找到帶有它的古代涵義的較老形式的「Algorism」(算術),是指用阿拉伯數字進行算術運算的過程。在中世紀時,珠算家用算盤進行計算,而算術家用算術進行計算。
根據經驗和發展結論得出,算法應該具備以下五個重要的特徵。
(1)有窮性:保證執行有限步驟以後結束;
(2)確切性:每一步驟都有確切的定義;
(3)輸入:每一個算法有零個或多個輸入,以刻畫運算對象的初始狀況,所謂零個輸入是指算法自己定除了初始條件;
(4)輸出:每一個算法有一個或多個輸出,顯示對輸入數據加工後的結果。沒有輸出的算法是毫無心義的;
(5)可行性:在原則上算法可以精確地運行,進行有限次運算後便可完成一種運算。程序員
1.認識計算機中的算法
計算機中算法可分爲以下兩大類。
(1)數值運算算法:求解數值。
(2)非數值運算算法:事務管理領域。
2.爲何是程序靈魂
通過上一節的學習,瞭解了算法在計算機編程中的重要做用後,我對算法是程序的靈魂這一說法表示深信不疑。在當今程序員的世界,算法已經成爲衡量一名程序員水平高低的參照物。高深的程序員都會看重數據結構和算法的做用,水平越高,就越能理解算法的重要性。算法不單單是運算工具,它更是程序的靈魂。在現實項目開發過程當中,不少實際問題須要精心設計的算法纔能有效解決。從我的來說,對算法的掌握也是區別於人,保持競爭力的重要方面。
算法是計算機處理信息的本質,由於計算機程序本質上是一個算法,告訴計算機確切的步驟來執行一個指定的任務,如計算職工的薪水或打印學生的成績單。通常地,當算法在處理信息時,數據會從輸入設備讀取,寫入輸出設備,可能保存起來以供之後使用。
著名計算機科學家沃思提出了下面的公式。
數據結構+算法=程序算法
實際上,一個程序應當採用結構化程序設計方法進行程序設計,而且用某一種計算機語言來表示。所以,能夠用下面的公式表示。
程序=算法+數據結構+程序設計方法+語言和環境編程
比較笨的枚舉算法思想數據結構
聰明一點的遞推算法思想數據結構和算法
充分利用本身的遞歸算法思想工具
各個擊破的分治算法思想學習
貪心算法思想並不貪婪設計
試探法算法思想是一種委婉的作法對象
迭代算法遞歸
模擬算法思想