計時函數的運用
在算法題提交的時候,系統經常會給你一個TLE。
這提醒我們要優化算法,但我們如何優化算法這是一個問題。
我們可以運用計時函數,大概統計一下代碼在最糟糕的情況下的運行時間。
可以大概得出優化方向(當然這裏只是大概)
當超時時間過多時,大多是代碼思路有問題,運行效率太低,應該將解題思路優化。
當超時時間不多時,應該是代碼還能再優化(剪枝等)。
可見時間函數的掌握對我們解題也會有很大的幫助!
計時函數
clock_t:專門作爲計時的變量(長整形數)。
clock( void ):返回從 “開啓這個程序進程” 到 “程序中調用clock()函數” 時之間的CPU時鐘計時單元(clock tick)數。
CLOCKS_PER_SEC:用來表示一秒鐘會有多少個時鐘計時單元。
說通俗一些, clock_t 變量是以CPU時鐘來計時的值,而 CLOCKS_PER_SEC 將 clock_t 變量計好的CPU時鐘值,換算成以秒爲單位。
太深層次的內容我就不展開了,夠用就行。
深層次內容鏈接
//計時函數模板
#include<stdio.h>
#include<time.h>
using namespace std;
int main(){
clock_t start, finish;
long long n, sum=0;
scanf("%lld", &n);
start = clock();
for(int i=0; i<n; i++){
sum++;
}
finish = clock();
printf("%lld\n", sum);
printf("%lf Second", (double)(finish-start)/CLOCKS_PER_SEC);
return 0;
}
希望將自己的學習經驗分享給有需要的人。
我是小鄭,一個不怎麼會的小白