資料結構演算法


演算法是用於解決特定問題的明確定義的步驟的過程。 演算法是有限的邏輯或指令集,它是為了完成某個預定義的任務而編寫的。 它不是完整的程式或程式碼,它只是問題的解決方案(邏輯),可以使用流程圖或虛擬碼表示為非正式描述。

下面給出了主要的演算法類別:

  • 排序:為按特定順序排序專案而開發的演算法。
  • 搜尋:為搜尋資料結構內的資料項而開發的演算法。
  • 刪除:為從資料結構中刪除現有元素而開發的演算法。
  • 插入:為在資料結構中插入專案而開發的演算法。
  • 更新:為更新資料結構中的現有元素而開發的演算法。

演算法的效能是基於以下屬性來衡量的:

  • 時間複雜度:它是表示程式執行到完成所需時間的一種方式。
  • 空間複雜度:它是演算法在執行過程中所需的記憶體空間量。 在有限的記憶體可用和多使用者系統的情況下,需要空間複雜性。

每個演算法必須具有:

  • 規範:計算過程的描述。
  • 前提條件:輸入條件。
  • 演算法的主體:一系列清晰明確的指令。
  • 後置條件:輸出條件。

範例:設計一個演算法,將兩個數位xy相乘,並賦值到z中,最後顯示結果。

第1步,開始
第2步,宣告三個整數xyz
第3步,定義xy的值
第4步,乘以xy的值
第5步,將第4步的輸出儲存在z中
第6步,列印z
第7步,停止完成

或者,演算法可以寫成 -

第1步,開始相乘
第2步,獲取xy的值
第3步, z ← x * y
第4步,顯示z
第5步,停止

演算法的特徵

演算法必須遵循以下提到的特徵:

  • 輸入:演算法必須具有0個或明確定義的輸入。
  • 輸出:演算法必須具有1個或明確定義的輸出,並且應與所需的輸出匹配。
  • 可行性:必須在有限步數後終止演算法。
  • 獨立性:演算法必須具有獨立於任何程式設計程式碼的逐步指導。
  • 明確無誤:演算法必須明確無誤。每個步驟和輸入/輸出必須清晰,並且只能產生一個含義。