什么是算法?
算法是利用計算機解決問題的處理步驟,簡而言之,算法就是解決問題的步驟。
算法不僅僅用於計算機的數據處理,現實世界中的各種問題也需要結合算法的概念來解決,其中,具有代表性的就是烹飪中用到的食譜,食譜是各種美味料理的制作方法,需要用一定的步驟表示出來。
算法是古老智慧的結晶,是程序的范本,學習算法才能編寫出高質量的程序。
算法的改進/食譜的改進:
為什么要學習算法?
學習算法的同時能提高自己的編程能力。一個好的算法是編寫程序的模型,因為它能創造計算機程序,其中還包含了程序的精髓。學過算法的人寫出的程序和沒學過算法的人寫出的程序有明顯的差距。要寫出既能正確執行又能提高效率的好程序,算法的學習是不可或缺的。
算法的學習類似於學習游戲攻略,有了攻略就能輕松取得游戲的成功。
怎么樣的解決問題方案才稱為算法?
算法必須具備兩個重要條件:
有效性:算法必須要為給定的任務給出正確的結果,即,有滿足條件的輸入值時,此算法一定要保證正常工作(返回正確的輸出值)。表明算法有效性的方法之一就是斷點。斷點設置在算法的任意位置上,判斷此位置是否滿足給出的條件,即,程序是否正確運行。
終止性:算法中沒有永遠反復執行,即,沒有無限循環,且不返回答案的情況。算法終止性可以用反復處理結束條件的判斷變量,或經過有限次的反復一定能到達結束條件等方法證明。
算法有哪些例子?
給計算機編程帶來方便的算法種類繁多,如技術計算(實現技術計算的算法,迪傑斯特拉法,素數,最大公約數)、排序(冒泡、選擇、歸並、希爾等)、查找(線性、二分法)、字符串模式匹配(KMP算法)。
算法的基礎——結構化程序設計的思想
用計算機編寫程序時,為了提高應用程序的效率,把設計上的錯誤最小化,有一種編程思想叫做結構化程序設計。
結構化程序設計中所有的處理流程,可以用以下三種結構組合而成:
順序結構:按照所述順序處理
選擇結構:根據判斷條件改變執行流程
循環結構:當條件成立時,反復執行給定的處理操作