演算法基礎--01
阿新 • • 發佈:2018-11-05
一、演算法一些基礎概念
1.演算法概念
所謂的演算法就是 對特定問題的解決步驟。
此處的特定問題一般指定是對資訊進行排序,搜尋目標資訊等不同的問題。
對於此問題,可以類比一下菜譜,也就是做菜的步驟。
2.演算法的目的
需求更優雅的解法。
3.瞭解演算法對玩遊戲是否有幫助(此處是書中的一個小的章節,暫且整理到這裡)
關鍵術語:
定式:圍棋術語,在某種局面下最優的固定的下法。
棋式:國際象棋等術語,類似於上面的解釋。
計算機的演算法也是如此,一個學習過演算法的人,即使沒有多高的天分,在編寫同樣功能的程式時,完成度比沒有學習過演算法的人有明顯的優勢。
4.演算法的兩個必要條件
準確性
對相應的問題,演算法必須能夠給出正確的結果。指的是輸入符合指定條件的值,一定要保證能得到正確的輸出。當然也存在一些邊界性輸入的問題。
斷言:對於演算法的任意一個步驟,輸入當前步驟滿足的條件的值,看是否能得到當前步驟產生的準確的結果,以此細分並判定。
可停止性
保證無論什麼樣的輸入,也一定可以在有限的時間內正確的停止。
5.要了解特別重要的演算法
專於數論計演算法的演算法
比如求解最大公約數的輾轉相除法,求解聯立方程的高斯消元法,求解定積分近似值的梯形公式,計算質數的埃拉託斯特尼篩法等
一組資料進行升序或者降序的排序演算法
比如選擇排序,氣泡排序,插入排序,希爾排序,歸併排序,快速排序
大量資料找出目標資料的搜尋演算法
線性搜尋,二分搜尋
在一個字串中找出符合特定模式的子串的匹配演算法
簡單字串搜尋,KMP演算法,BM演算法
二、結構化程式設計思想
旨在高效描述程式,最大限度的減少設計誤差的方法論。
所有的流程通過三種結構順序結構,選擇結構,迴圈結構組合來表示。
以上就是本篇博文介紹的內容。下篇將對變數和陣列等資料方面進行介紹和記錄,歡迎大家的關注。