Linux下演算法效率的分析和測量

2021-06-03 08:38:27 字數 853 閱讀 9660

首先用兩種方法計算1-1/x+1/x*x……然後比較其所用時間。本文涉及linux下測量毫秒級時間精度的問題。

方法1:

//write in ubuntu11.04

#include#include#includeint main()

{ struct timeval t_start,t_end;

double x,sum=1,sumx=1;

int n,j,i;

printf("input x n\n");

scanf("%lf %d",&x,&n);//lf 輸入double 型別

gettimeofday(&t_start,null);//第乙個引數存放當前時間,第二個存放時區資訊

for(j=0;j

方法2:

#include#include#includeint main()

{ struct timeval t_start,t_end;

double x,sum=1,sumx=1;

int n,j,i;

printf("input x n\n");

scanf("%lf %d",&x,&n);//lf 輸入double 型別

gettimeofday(&t_start,null);//第乙個引數存放當前時間,第二個存放時區資訊

for(j=0;j

方法一時間複雜度為n^2,用時561ms,方法二時間複雜度為n,用時0ms。

編譯時遇到error: 『for』 loop initial declarations are only allowed in c99 mode的問題,解決方法如下:

演算法分析 演算法的漸進效率分析

一般用於界定函式集合的上界,漸進表示式o g n 的含義就是,c為正常數,函式集合o中的元素的最大值不會超過c.g n f n o g n 的含義是,函式f n 的屬於集合o g n 因為函式集合o中的最大值為c.g n 所以f n 的最大值為c.g n 由於只是漸進的上界,所以當函式g n 的階數...

KMP演算法的效率分析

上一節,我們研究了kmp演算法的實現原理,這節,我們從分析的角度看看kmp演算法的時間複雜度和它的正確性。我們先看計算匹配字串最長字尾陣列的的函式 private intgetlongestsuffix int s throws exception if pi s 1 pi s 0 int k ge...

for迴圈用效率分析( 和 時效率的差異分析)

聽別人說的面試中問過的乙個問題,記不清了,如有偏差希望大家補充糾正 問題 完成相同的功能,for迴圈使用 和 哪個效率更高?通常我們在編寫需要for迴圈實現的程式時有兩種實現方法 for int i 0 ifor int i arr.length 1 i 0 i 結論 通常來講第2種用 的方法效率更...