1. 程式人生 > >演算法基礎--01

演算法基礎--01

一、演算法一些基礎概念

1.演算法概念

所謂的演算法就是 對特定問題的解決步驟。

此處的特定問題一般指定是對資訊進行排序,搜尋目標資訊等不同的問題。

對於此問題,可以類比一下菜譜,也就是做菜的步驟。

2.演算法的目的

需求更優雅的解法。

3.瞭解演算法對玩遊戲是否有幫助(此處是書中的一個小的章節,暫且整理到這裡)

關鍵術語:

定式:圍棋術語,在某種局面下最優的固定的下法。

棋式:國際象棋等術語,類似於上面的解釋。

計算機的演算法也是如此,一個學習過演算法的人,即使沒有多高的天分,在編寫同樣功能的程式時,完成度比沒有學習過演算法的人有明顯的優勢。

4.演算法的兩個必要條件

準確性

對相應的問題,演算法必須能夠給出正確的結果。指的是輸入符合指定條件的值,一定要保證能得到正確的輸出。當然也存在一些邊界性輸入的問題。

斷言:對於演算法的任意一個步驟,輸入當前步驟滿足的條件的值,看是否能得到當前步驟產生的準確的結果,以此細分並判定。

可停止性

保證無論什麼樣的輸入,也一定可以在有限的時間內正確的停止。

5.要了解特別重要的演算法

專於數論計演算法的演算法

比如求解最大公約數的輾轉相除法,求解聯立方程的高斯消元法,求解定積分近似值的梯形公式,計算質數的埃拉託斯特尼篩法等

一組資料進行升序或者降序的排序演算法

比如選擇排序,氣泡排序,插入排序,希爾排序,歸併排序,快速排序

大量資料找出目標資料的搜尋演算法

線性搜尋,二分搜尋

在一個字串中找出符合特定模式的子串的匹配演算法

簡單字串搜尋,KMP演算法,BM演算法

二、結構化程式設計思想

旨在高效描述程式,最大限度的減少設計誤差的方法論。

所有的流程通過三種結構順序結構,選擇結構,迴圈結構組合來表示。

以上就是本篇博文介紹的內容。下篇將對變數和陣列等資料方面進行介紹和記錄,歡迎大家的關注。