重溫資料結構二(演算法)

來源:互聯網
上載者:User

演算法:演算法是解決特定問題求解步驟的描述,在電腦中表現為指令的有限序列,並且每條指令表示一個或多個操作

 演算法的特性 :輸入,輸出,有窮性,確定性,可行性

    演算法具有零個或多個輸入

    演算法至少有一個或多個輸出

    演算法在執行有限步驟之後,自動結束而不會出現無限迴圈,並且每一個步驟在可接受的時間內完成

   演算法的每一步驟都具有確定的含義,無二義性

    演算法的每一步都必須是可行的,也就是說,每一步都能夠通過執行有限次數完成

 演算法設計要求

   正確性,可讀性,健壯性,時間效率低和儲存量低

演算法效率度量方法

  事後統計方法:通過設計好的測試程式和資料,利用電腦計時器對不同演算法編製的程式的已耗用時間進行比較,從而確定演算法的效率高低

  缺陷:必須實現編好程式

             時間比較依賴電腦硬體和軟體

            演算法測試資料設計困難

事前分析估算方法:電腦程式編製前,依據統計方法對演算法進行估算

         消耗時間依賴:1 演算法採用的策略,方法 2 編譯產生的代碼品質 3 問題輸入的規模 4 機器執行指令的速度

函數的漸近增長:給定兩個函數f(n) 和g(n),如果存在一個整數N,使得對於所有的n>N ,f(n)總是比g(n)大,那麼我們說f(n)

   的增長漸近快於g(n)

  與最高次項相乘的常數並不重要

 判斷一個演算法的效率時,函數中的常數和其他次要項常常可以忽略,更應該關注主項的階數

 演算法的時間複雜度 :T(n) = O(f(n))  它表示隨問題規模n的增大,演算法執行時間的增長率和f(n)的增長率相同。稱作演算法的漸近時間複雜度。

推導大O階方法:

   1 用常數1 取代已耗用時間中的所有加法常數

   2 在修改後的運行次數函數中,只保留最高階項

   3 如果最高階項存在且不是1,則去除與這個項相乘的常數

     得到的結果就是大O階

             最壞情況已耗用時間:就是已耗用時間不會再壞了

            平均時間 期望啟動並執行時間

            一般都是指最壞時間複雜度

       演算法空間複雜度

     通過計算演算法所需的儲存空間實現,演算法空間複雜度計算公式:s(n) = O(f(n))  n為問題的規模,f(n) 為語句關於n所佔的儲存空間函數

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.