演算法導論 第一章 1 2 演算法分析

2022-09-12 16:51:30 字數 768 閱讀 7575

演算法分析 概念:

演算法分析即指對乙個演算法所需的資源進行**。一般來說,資源是指計算時間,有時也指儲存器、通訊頻寬或邏輯門等。給定乙個問題後,通過分析幾種候選演算法,可以從中選出乙個最有效的演算法。

插入排序演算法的分析

insertion-sort過程的時間開銷與輸入有關:排序1000個數的時間比排序三個數的時間要長。即使排序兩個相同長度的輸入序列的時間也有可能不同,這取決於它們已排序的程度。演算法所需的時間是與輸入規模同步增長的。

最壞情況和平均情況分析:

演算法的最壞情況執行時間是在任何輸入下的執行時間的上界,這就保證演算法的執行時間不會比它更長。(目前還不太理解)

平均情況的時間性態常常與最壞情況下的大致一樣。如:隨機取n個數進行插入排序。要找到元素a[j],在子陣列a[1...j]中的位子要花多久?平均來說是  j/2  。我們假定乙個特定規模下的所輸入的「平均性」都是一樣的,在實際中可能要違反這個假設,但採用隨機演算法就可以強制這點成立。

增長的量級:

為了簡化對insertion_sort的分析,我們做了簡化抽象,忽略了每條語句的真實代價,用c1來表示。

我們在進一步簡化抽象 an2+bn+c  我們只考慮公式中的最高次項當an2 當n很大時低階項相對來說不太重要,還忽略最高次項的常熟係數,應為在考慮規模輸入下的計算效率時相對於增長率來說,係數是次要的。

如果乙個演算法的最壞情況執行時間的階要比另外乙個演算法的低,我們認為它更為有效。在輸入的規模較小時,這種看法有時不對,但對足夠大的規模的輸入來說,乙個具有θ(n2)的演算法在最壞情況下比階θ(n3)的演算法執行的更快。

演算法導論第一章

第一章 演算法在計算中的作用 1.1演算法 非形式地說,演算法就是任何良定義的計算過程,該過程取某個值或值的集合作為輸入並產生某個值或值的集合作為輸出。這樣,演算法就是把輸入轉換成輸出的計算步驟的乙個序列。若對每個輸入例項演算法都以正確的輸出停機,則稱該演算法是正確的,並稱正確的演算法解決了給定的計...

演算法導論筆記第一章

首先從別人的博文中看到乙個對演算法的最為簡單而又簡潔的理解 演算法 輸入 良好的計算過程 正確輸出。仔細想,就是這個樣子的。有時間,習慣了有問題就上網查詢,而漸漸使大腦變的遲鈍許多,遇到問題第一反應不是仔細想想而是想要去查查怎麼回事,這不是個好的習慣。要改正。下面是自己對習題的一些想法 1.1 1 ...

演算法導論筆記第一章

首先從別人的博文中看到乙個對演算法的最為簡單而又簡潔的理解 演算法 輸入 良好的計算過程 正確輸出。仔細想,就是這個樣子的。有時間,習慣了有問題就上網查詢,而漸漸使大腦變的遲鈍許多,遇到問題第一反應不是仔細想想而是想要去查查怎麼回事,這不是個好的習慣。要改正。下面是自己對習題的一些想法 1.1 1 ...