- Python 資料結構與演算法教程
- Python - 資料結構主頁
- Python - 資料結構介紹
- Python - 資料結構環境
- Python - 陣列
- Python - 列表
- Python - 元組
- Python - 字典
- Python - 二維陣列
- Python - 矩陣
- Python - 集合
- Python - 對映
- Python - 連結串列
- Python - 棧
- Python - 佇列
- Python - 雙端佇列
- Python - 高階連結串列
- Python - 雜湊表
- Python - 二叉樹
- Python - 搜尋樹
- Python - 堆
- Python - 圖
- Python - 演算法設計
- Python - 分治法
- Python - 遞迴
- Python - 回溯法
- Python - 排序演算法
- Python - 搜尋演算法
- Python - 圖演算法
- Python - 演算法分析
- Python - 大O表示法
- Python - 演算法類
- Python - 均攤分析
- Python - 演算法論證
- Python 資料結構與演算法有用資源
- Python - 快速指南
- Python - 有用資源
- Python - 討論
Python - 演算法設計
演算法是一個逐步的過程,它定義了一組指令,這些指令以一定的順序執行以獲得所需的輸出。演算法通常獨立於底層語言建立,即一個演算法可以在多種程式語言中實現。
從資料結構的角度來看,以下是演算法的一些重要類別:
搜尋 - 在資料結構中搜索專案的演算法。
排序 - 按特定順序排序專案的演算法。
插入 - 將專案插入資料結構的演算法。
更新 - 更新資料結構中現有專案的演算法。
刪除 - 從資料結構中刪除現有專案的演算法。
演算法的特性
並非所有過程都可以稱為演算法。演算法應具有以下特徵:
明確性 - 演算法應清晰明確。其每個步驟(或階段)及其輸入/輸出都應清晰,並且必須只產生一個含義。
輸入 - 演算法應具有 0 個或多個明確定義的輸入。
輸出 - 演算法應具有 1 個或多個明確定義的輸出,並且應與所需輸出匹配。
有限性 - 演算法必須在有限的步驟後終止。
可行性 - 應該使用可用資源可行。
獨立性 - 演算法應具有逐步的指令,這些指令應獨立於任何程式設計程式碼。
如何編寫演算法?
沒有編寫演算法的明確標準。相反,它取決於問題和資源。演算法永遠不會被編寫來支援特定的程式設計程式碼。
眾所周知,所有程式語言都共享基本的程式碼結構,例如迴圈(do、for、while)、流程控制(if-else)等。這些常用結構可用於編寫演算法。
我們以逐步的方式編寫演算法,但這並非總是如此。演算法編寫是一個過程,在問題域得到明確定義後執行。也就是說,我們應該知道我們正在設計解決方案的問題域。
示例
讓我們嘗試透過一個示例來學習演算法編寫。
問題 - 設計一個演算法來新增兩個數字並顯示結果。
步驟 1 - 開始
步驟 2 - 宣告三個整數 a、b 和 c
步驟 3 - 定義 a 和 b 的值
步驟 4 - 新增 a 和 b 的值
步驟 5 - 將步驟 4 的輸出儲存到 c
步驟 6 - 列印 c
步驟 7 - 停止
演算法告訴程式設計師如何編寫程式。或者,演算法可以寫成:
步驟 1 - 開始加法
步驟 2 - 獲取 a 和 b 的值
步驟 3 - c ← a + b
步驟 4 - 顯示 c
步驟 5 - 停止
在演算法的設計和分析中,通常使用第二種方法來描述演算法。它使分析師能夠輕鬆地分析演算法,而忽略所有不需要的定義。他可以觀察正在使用的操作以及流程是如何進行的。
編寫步驟編號是可選的。
我們設計算法來獲得給定問題的解決方案。一個問題可以用多種方式解決。
因此,可以針對給定問題推匯出許多解決方案演算法。下一步是分析這些提出的解決方案演算法並實現最合適的解決方案。