演算法的要素與簡介
演算法是指解題方案的準確而完整的描述,是一系列解決問題的清晰指令,演算法代表著用系統的方法描述解決問題的策略機制。以下是由小編整理關於什麼是演算法的內容,希望大家喜歡!
演算法的特徵
一個演算法應該具有以下五個重要的特徵:
有窮性***Finiteness***
演算法的有窮性是指演算法必須能在執行有限個步驟之後終止;
確切性***Definiteness***
演算法的每一步驟必須有確切的定義;
輸入項***Input***
一個演算法有0個或多個輸入,以刻畫運算物件的初始情況,所謂0個輸入是指演算法本身定出了初始條件;
輸出項***Output***
一個演算法有一個或多個輸出,以反映對輸入資料加工後的結果。沒有輸出的演算法是毫無意義的;
可行性Effectiveness***
演算法中執行的任何計算步驟都是可以被分解為基本的可執行的操作步,即每個計算步都可以在有限時間內完成***也稱之為有效性***。
演算法的要素
一、資料物件的運算和操作:計算機可以執行的基本操作是以指令的形式描述的。一個計算機系統能執行的所有指令的集合,成為該計算機系統的指令系統。一個計算機的基本運算和操作有如下四類:
1,算術運算:加減乘除等運算
2,邏輯運算:或、且、非等運算
3,關係運算:大於、小於、等於、不等於等運算
4,資料傳輸:輸入、輸出、賦值等運算
二、演算法的控制結構:一個演算法的功能結構不僅取決於所選用的操作,而且還與各操作之間的執行順序有關。
演算法的評定
同一問題可用不同演算法解決,而一個演算法的質量優劣將影響到演算法乃至程式的效率。演算法分析的目的在於選擇合適演算法和改進演算法。一個演算法的評價主要從時間複雜度和空間複雜度來考慮。
時間複雜度
演算法的時間複雜度是指執行演算法所需要的計算工作量。一般來說,計算機演算法是問題規模n 的函式f***n***,演算法的時間複雜度也因此記做。
T***n***=Ο***f***n******
因此,問題的規模n 越大,演算法執行的時間的增長率與f***n*** 的增長率正相關,稱作漸進時間複雜度***Asymptotic Time Complexity***。
空間複雜度
演算法的空間複雜度是指演算法需要消耗的記憶體空間。其計算和表示方法與時間複雜度類似,一般都用複雜度的漸近性來表示。同時間複雜度相比,空間複雜度的分析要簡單得多。
正確性
演算法的正確性是評價一個演算法優劣的最重要的標準。
可讀性
演算法的可讀性是指一個演算法可供人們閱讀的容易程度。
健壯性
健壯性是指一個演算法對不合理資料輸入的反應能力和處理能力,也稱為容錯性。
演算法的要素