常見演算法時間函式的增長趨勢分析

2022-08-30 14:15:16 字數 1713 閱讀 8374

《資料結構教程》(第5版)上機實驗題1--實驗題2:

目的:

理解常見演算法時間函式的增長趨勢
對以下函式用c++程式執行觀察其變化:

<< "

log2(n):

<< "

√n:<< "

n:<< "

n*log2(n):

<< "

n*n:

<< "

n^3:

<< "

2^n:

<< "

n!:

1、從值的變化角度分析:s-code:

2、從消耗的時間的角度分析:

介紹乙個計時函式

#includeclock_t start, end;

start =clock();

>>>//

測試部分

end =clock();

cout

<

單位是秒

s-code:

#include#include

#include

#include

using

namespace

std;

double factorial(double n) //

求階乘

return

result;

}double testtime(double n) //

測試從0~n的消耗的時間

void tprint(string str, double n) //

output

intmain()

result:

這裡測試了

1011

1213

5000

五組資料顯然當n越大時所消耗的時間的變化率差距就越大

注意:

這裡的測試資料可能會由機器的效能不同產生差距,這時候就是檢驗機器效能的時候到了哈哈哈哈哈哈。。。。。
其實分析函式的變化用極限就一目了然了,用程式就是為了感受下等待的痛苦,哈哈。。。。。。

演算法導論 函式的增長。

因為在計算機程式設計的學習中,我們需要掌握乙個類似於 需求量 的東西,怎麼去理解需求量呢,舉個最簡單的例子,你有乙個雙層迴圈,這個雙層迴圈所需要的時間,就是乙個增長量。具體一點可以這麼去解釋這個問題,如果你在乙個迴圈裡面的每乙個步驟所需要的時間都不同的話,那麼 你的需求量就是乙個分布式的增長。我們需...

函式的增長 演算法導論 2

1.引言 這一章主要是介紹一些概念,雖然很乏味,但是它確實能夠幫助我們去更好的分析 處理問題。2.漸進記號 1 記號 g n 通俗地講,若存在正常數才c1,c2,使得對於足夠大的n,函式f n 能 夾入 c1 g n 與c2 g n 之間,則f n 屬於集合 g n 通常把f n g n 記為f n...

演算法分析中的增長數量級和近似函式

描述 近似函式 調和級數求和 hn 1 1 2 1 3 1 4 1 n lnn 等差數列求和 1 2 3 4 n n 2 等比數列求和 1 2 4 8 2 2 斯特靈公式 lgn lg1 lg2 lg3 lg4 lgn nlgn 描述增長的數量級 典型 說明舉例 常數級別 1a b c 完成任務所需...