當前位置:
首頁 >
测试计算机的运行速度
發布時間:2023/12/18
41
豆豆
生活随笔
收集整理的這篇文章主要介紹了
测试计算机的运行速度
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
計算機的運行速度主要取決于CPU的頻率,一般CPU的頻率標注為**GHz,例如2.5GHz,在計算機中1Hz代表計算機的CPU在單位時間內運行一次。
?
頻率的換算關系為1GHz=1000MHz;1MHz=一百萬Hz=10^6Hz;
本計算機的頻率為2.5GHz,用換算公式后得到的結果就是25億Hz,但是CPU的過程并不是完成一次加法就是運算一次,CPU內部有各種線程,可能要運行十幾次才能完成一次加法;可以編寫程序測試一下計算機的運行速度,在以下的案例中,分別編寫時間復雜度為O(n)、O(n^2)、O(n*logn)的程序
#include<iostream> #include<chrono> #include<thread> using namespace std; using namespace chrono;//測試時間復雜度為O(n)的程序 void fun1(long long n){long long k = 1;for (long long j = 0; j < n; ++j){k++;} }//測試時間復雜度為O(n^2)的程序 void fun2(long long n){long long k = 1;for (long long i = 0; i < n; ++i) {for (long long j = 0; j < n; ++j) {k++;}} }//測試時間復雜度為O(n*logn)的程序 void fun3(long long n) {long long k = 1;for (long long i = 0; i < n; ++i) {for (long long j = 1; j < n; j = j * 2) {k++;}} }int main() {long long n; //輸入數據的規模while (true) {cout << "輸入:";cin >> n;milliseconds start_time = duration_cast<milliseconds>(system_clock::now().time_since_epoch());fun1(n);milliseconds end_time = duration_cast<milliseconds>(system_clock::now().time_since_epoch());cout << "耗時:" << milliseconds(end_time).count() - milliseconds(start_time).count() << "ms" << endl;} }解釋以下,為什么fun3的時間復雜度是O(n*logn),外層循環n次、內層循環log2(n)。
O(n)的時間復雜度
也就是說計算五千萬個數量級,耗費時間為136ms(這里計算的是1累加到5千萬);
可以推理,對于O(n^2)的時間復雜度,能計算的數量級要在O(n)的基礎上開根號,
?
?顯然可以得出結論,時間復雜度越低,計算相同數量級數據耗時越少
總結
以上是生活随笔為你收集整理的测试计算机的运行速度的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 什么是SOCKS5代理 它的原理是什么
- 下一篇: 操作rabbitMQ时,误删guest账