演算法和演算法分析基礎

來源:互聯網
上載者:User

演算法:對求解步驟的描述,是一組指令的有序序列,演算法必須是有窮的,可行的,並且要有輸入輸出

通常我們對演算法設計的要求有

正確性:應該滿足具體問題的需求。

可讀性:出了讓機器執行,演算法設計還應方便人的閱讀和交流

健壯性:經得起測試

效率與低儲存量:演算法執行的時間要越短越好,佔用的儲存空間應該越少越好

 

演算法效率的度量:

一般分為事後統計和事前分析估算

因為電腦的硬體,軟體環境等因素會常常掩蓋演算法本身的優劣,所以人們常常採用事前分析的方法

這樣拋開電腦硬體和軟體相關因素,一個特定演算法的複雜度只依賴於問題的規模

一個演算法是由控制結構(順序,分支,迴圈三種),和原操作構成,演算法的時間取決與兩者的綜合

一般情況下演算法重複次數是問題規模n的某個函數(f(n))

T(n) = O(f(n))

eg:

for(i = 1; i <= n ;  i++){

    for(j = 1 ; j <= n ; j++){

        c[i][j] = 0;

        for(k = 1 ; k <= n ; k++){

           c[i][j] += a[i][k] * b[k][j];

         }

    }

}

演算法複雜度:T(n) = O(n*n*n)

理想狀態下隨著n的增大演算法執行時間的增長率和f(n)的增長率相同,稱為演算法的漸近時間複雜度,簡稱時間複雜度

演算法所需要的儲存空間S(n) = O(f(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.