演算法學習之演算法思想

2021-09-18 08:20:56 字數 1210 閱讀 5148

演算法的英文名稱是algorithm,這個詞在2023年之前在webster's new world dictionary(《韋氏新世界詞典》)中還未出現,只能找到帶有它的古代涵義的較老形式的「algorism」(算術),是指用阿拉伯數字進行算術運算的過程。在中世紀時,珠算家用算盤進行計算,而算術家用算術進行計算。

根據經驗和發展結論得出,演算法應該具有如下五個重要的特徵。

(1)有窮性:保證執行有限步驟之後結束;

(2)確切性:每一步驟都有確切的定義;

(3)輸入:每個演算法有零個或多個輸入,以刻畫運算物件的初始情況,所謂零個輸入是指演算法本身定除了初始條件;

(4)輸出:每個演算法有乙個或多個輸出,顯示對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;

(5)可行性:在原則上演算法能夠精確地執行,進行有限次運算後即可完成一種運算。

1.認識計算機中的演算法

計算機中演算法可分為如下兩大類。

(1)數值運算演算法:求解數值。

(2)非數值運算演算法:事務管理領域。

2.為什麼是程式靈魂

經過上一節的學習,了解了演算法在計算機程式設計中的重要作用後,我對演算法是程式的靈魂這一說法表示深信不疑。在當今程式設計師的世界,演算法已經成為衡量一名程式設計師水平高低的參照物。高深的程式設計師都會看重資料結構和演算法的作用,水平越高,就越能理解演算法的重要性。演算法不僅僅是運算工具,它更是程式的靈魂。在現實專案開發過程中,很多實際問題需要精心設計的演算法才能有效解決。從個人來講,對演算法的掌握也是區別於人,保持競爭力的重要方面。

演算法是計算機處理資訊的本質,因為電腦程式本質上是乙個演算法,告訴計算機確切的步驟來執行乙個指定的任務,如計算職工的薪水或列印學生的成績單。一般地,當演算法在處理資訊時,資料會從輸入裝置讀取,寫入輸出裝置,可能儲存起來以供以後使用。

著名計算機科學家沃思提出了下面的公式。

資料結構+演算法=程式

實際上,乙個程式應當採用結構化程式設計方法進行程式設計,並且用某一種計算機語言來表示。因此,可以用下面的公式表示。

程式=演算法+資料結構+程式設計方法+語言和環境

比較笨的列舉演算法思想

聰明一點的遞推演算法思想

充分利用自己的遞迴演算法思想

各個擊破的分治演算法思想

貪心演算法思想並不貪婪

試探法演算法思想是一種委婉的做法

迭代演算法

模擬演算法思想

演算法學習之插入演算法

插入演算法其實很簡單,其原理就像我們玩的撲克一樣 在桌子上放著一疊雜亂無序的撲克牌 相當於需要我們排序的初始化陣列 然後拿起第一張,放到左手上 只有一張,不需要排序的說 然後拿起第二張,從右往左進行比較大小,如果小,就放到第一張牌的左邊,如果大,就放到第一張牌的右邊 然後拿起第三張,同上,從右往左進...

演算法學習之演算法的理解

歷史程序中,我們都是在不斷的去分析問題,解決問題。演算法是一系列解決問題步驟 方案。演算法的特徵 有窮性 finiteness 演算法的有窮性是指演算法必須能在執行有限個步驟之後終止。理解 演算法執行之後都是有結束點的,不存在死迴圈和永遠執行下去的演算法,是可以求到結果的。演算法必須在有限時間內完成...

演算法學習之排序 LRU演算法

1 氣泡排序 public void bubblesort int arr 2 選擇排序 public void selectionsort int arr 然後將最小值與本次迴圈的,開始值交換 int temp arr i arr i min arr index temp 說明 如果每次比較都交換...