時間測演算法
『壹』 如何用C實現演算法運行時間的測試
在你需要計算時間的代碼段前面 統計當前的CUP tick,然後再程序段後面再次統計tick,兩者相減不就可以了。函數GetTickCount
『貳』 怎樣測試一個演算法所用的時間,就是測試各種排序所用的時間來比較演算法的好壞
根據程序就能看出來啊 詳見 http://wenku..com/view/0f7c9d6c1eb91a37f1115c3a.html
『叄』 一個演算法的運行時所消耗的時間是如何測出來的
在忽略機器性能的基礎上我們用演算法時間復雜度來計算演算法執行的時間
1.時間頻度
一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。
2.計算方法
1. 一般情況下,演算法的基本操作重復執行的次數是模塊n的某一個函數f(n),因此,演算法的時間復雜度記做:T(n)=O(f(n)) 分析:隨著模塊n的增大,演算法執行的時間的增長率和f(n)的增長率成正比,所以f(n)越小,演算法的時間復雜度越低,演算法的效率越高。 2. 在計算時間復雜度的時候,先找出演算法的基本操作,然後根據相應的各語句確定它的執行次數,再找出T(n)的同數量級(它的同數量級有以下:1,Log2n ,n ,nLog2n ,n的平方,n的三次方,2的n次方,n!),找出後,f(n)=該數量級,若T(n)/f(n)求極限可得到一常數c,則時間復雜度T(n)=O(f(n)) 例:演算法: for(i=1;i<=n;++i) { for(j=1;j<=n;++j) { c[ i ][ j ]=0; //該步驟屬於基本操作 執行次數:n的平方 次 for(k=1;k<=n;++k) c[ i ][ j ]+=a[ i ][ k ]*b[ k ][ j ]; //該步驟屬於基本操作 執行次數:n的三次方 次 } } 則有 T(n)= n的平方+n的三次方,根據上面括弧里的同數量級,我們可以確定 n的三次方 為T(n)的同數量級 則有f(n)= n的三次方,然後根據T(n)/f(n)求極限可得到常數c 則該演算法的 時間復雜度:T(n)=O(n的三次方)
3.分類
按數量級遞增排列,常見的時間復雜度有: 常數階O(1),對數階O(log2n),線性階O(n), 線性對數階O(nlog2n),平方階O(n2),立方階O(n3),..., k次方階O(nk), 指數階O(2n) 。隨著問題規模n的不斷增大,上述時間復雜度不斷增大,演算法的執行效率越低。
『肆』 PASCAL中測定時間的演算法
真正的原理是meml是訪問內存的
而Free Pascal不能用meml訪問內存
所有就會編譯失敗
如果你實在想知道時間可以用一個擴展的Get函數,但是很麻煩、很慢。所有在比oi里基本不會用到時間的操作。
你要想測運行時間可以用cena等測試工具。
cena的下載地址:http://cena.3322.org/
在Free Pascal里還可以這樣
uses sysutils;
var t1:tdatetime;
i,j,k:longint;
begin
t1:=now;
while true do
begin
if (now-t1)*86400>3 then
begin
……
break;
end;
end;
end.
註:在比賽時不能這樣是使用uses sysutils庫
鄙視抄答案者!!
『伍』 怎麼用系統時鍾測量演算法所用的時間
在程序開始時定義一個變數記錄當前時間,程序結束時獲取當前時間,輸出兩個之差
『陸』 如何衡量一個時間演算法的時間效率
一個演算法執行所耗費的時間,從理論上是不能算出來的,必須上機運行測試才能知道。但我們不可能也沒有必要對每個演算法都上機測試,只需知道哪個演算法花費的時間多,哪個演算法花費的時間少就可以了。
並且一個演算法花費的時間與演算法中語句的執行次數成正比例,哪個演算法中語句執行次數多,它花費時間就多。一個演算法中的語句執行次數稱為語句頻度或時間頻度。記為T(n)。演算法的時間復雜度是指執行演算法所需要的計算工作量。
時間效率,一定生產時間內,機器實際運轉時間與理論運轉時間之比,通常用百分率表示。與設備自動化程度、速度、卷裝尺寸、工人操作熟練程度及看台數有關。
(6)時間測演算法擴展閱讀:
點在空間中變化對點的描述稱為被描述點相當於該點的時間【該點運動到某一位置時,被描述點都會有唯一的對應位置,稱為此時被描述點的位置】。被描述點可以隨時間變化位置不變,可知時間與被描述點的位置有函數關系。
空間使事物具有了變化性,即因為空間的存在,所以事物才可以發生變化。空間是沒有能量的事物,即當事物能產生變化時,變化產生的能量已經和阻礙的能量相互抵消。
天文測時所依賴的是地球自轉,而地球自轉的不均勻性使得天文方法所得到的時間(世界時)精度只能達到10-9,無法滿足二十世紀中葉社會經濟各方面的需求。一種更為精確和穩定的時間標准應運而生,這就是「原子鍾」。
世界各國都採用原子鍾來產生和保持標准時間,這就是「時間基準」,然後,通過各種手段和媒介將時間信號送達用戶,這些手段包括:短波、長波、電話網、互聯網、衛星等。這一整個工序,就稱為「授時系統」。
『柒』 如何在c排序演算法中加入時間測試
#include "stdio.h"#include "time.h"
void main(){ clock_t t1,t2; t1 = clock();
some_sort();
t2 = clock(); printf("time elapses %d ms",t2-t1);
}
『捌』 如何在C++中用系統時鍾測量演算法所用的時間
#include <TIME.H>//時間日期頭文件
double timeStandard;//定義一個浮點數存儲時間差
clock_t start,finish;//定義兩個時間變數存儲時間
start=clock();//獲取演算法開始時間
finish=clock();//獲取演算法結束時間
timeStandard=(double)(finish-start)/CLOCKS_PER_SEC;//計算時間差
printf("\n 運行時間:%fs\n\n",timeStandard);
system("pause");
『玖』 奇門遁甲中根據時間,測算的步驟是什麼
你是要學習奇門遁甲斷卦吧,奇門遁甲斷卦的順序是先看日干,與地盤宮和奇乙的生克關系,還有月令的扶助,月令扶助是非常重要的,對自己有50%的影響力。然後看用神,例如,你求財看生門,開店看開門,地皮看死門,具體的用神在我空間有詳細的,字數關系我就不一一說明,看用神與你所落之宮的生克關系,時間方面就是看時間的長遠,陽遁1.8.3.4宮為時間近,2.5.7.6.9為時間長,要是陰遁就相反,看你用神所落之宮為時間為應期,我空間有百萬字的文章,在奇門遁甲那一頁,字太多,不方便發。。。