演算法是用於解決特定問題的明確定義的步驟的過程。 演算法是有限的邏輯或指令集,它是為了完成某個預定義的任務而編寫的。 它不是完整的程式或代碼,它只是問題的解決方案(邏輯),可以使用流程圖或偽代碼表示為非正式描述。
下麵給出了主要的演算法類別:
- 排序:為按特定順序排序專案而開發的演算法。
- 搜索:為搜索數據結構內的資料項目而開發的演算法。
- 刪除:為從數據結構中刪除現有元素而開發的演算法。
- 插入:為在數據結構中插入專案而開發的演算法。
- 更新:為更新數據結構中的現有元素而開發的演算法。
演算法的性能是基於以下屬性來衡量的:
- 時間複雜度:它是表示程式運行到完成所需時間的一種方式。
- 空間複雜度:它是演算法在執行過程中所需的記憶體空間量。 在有限的記憶體可用和多用戶系統的情況下,需要空間複雜性。
每個演算法必須具有:
- 規範:計算過程的描述。
- 前提條件:輸入條件。
- 演算法的主體:一系列清晰明確的指令。
- 後置條件:輸出條件。
示例:設計一個演算法,將兩個數字x
和y
相乘,並賦值到z
中,最後顯示結果。
第1步,開始
第2步,聲明三個整數x
,y
和z
第3步,定義x
和y
的值
第4步,乘以x
和y
的值
第5步,將第4
步的輸出存儲在z中
第6步,列印z
第7步,停止完成
或者,演算法可以寫成 -
第1步,開始相乘
第2步,獲取x
和y
的值
第3步, z ← x * y
第4步,顯示z
第5步,停止
演算法的特徵
演算法必須遵循以下提到的特徵:
- 輸入:演算法必須具有
0
個或明確定義的輸入。 - 輸出:演算法必須具有
1
個或明確定義的輸出,並且應與所需的輸出匹配。 - 可行性:必須在有限步數後終止演算法。
- 獨立性:演算法必須具有獨立於任何編程代碼的逐步指導。
- 明確無誤:演算法必須明確無誤。每個步驟和輸入/輸出必須清晰,並且只能產生一個含義。