算法的定義及分析


算法的定義

算法是一系列良定義的計算步驟

算法和程序的區別

算法

算法是指解決問題的一種方法或一個過程。
算法是若干指令的有窮序列,滿足性質:

  1. 輸入:有外部提供的量作為算法的輸入。
  2. 輸出:算法產生至少一個量作為輸出。
  3. 確定性:組成算法的每條指令是清晰,無歧義的。
  4. 有限性:算法中每條指令的執行次數是有限的,執行每條指令的時間也是有限的。
程序
  1. 程序是算法用某種程序設計語言的具體實現。
  2. 程序可以不滿足算法的性質(4)。
  3. 例如操作系統,是一個在無限循環中執行的程序,因而不是一個算法。
  4. 操作系統的各種任務可看成是單獨的問題,每一個問題由操作系統中的一個子程序通過特定的算法來實現。該子程序得到輸出結果后便終止。

算法的性質

有窮性:算法必須在有限步驟后終止

確定性:算法必須是沒有歧義的

可行性:可以機械的一步步執行

算法的表示

自然語言、編程語言、偽代碼

算法的分析

分析原則
  1. 統一機器性能
  2. 情況最壞分析

算法運行時間僅依賴於輸入規模n,表示為T(n)

漸進分析
漸進記號

漸進符合
漸進符號
漸進符號

常用的復雜性函數

常用復雜性函數
關系

算法分析基本法則

非遞歸算法:

  1. for / while 循環
    循環體內計算時間循環次數;
  2. 嵌套循環
    循環體內計算時間*所有循環次數;
  3. 順序語句
    各語句計算時間相加;
  4. if-else語句
    if語句計算時間和else語句計算時間的較大者。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM