主页
搜索
最近更新
数据统计
赞助我们
系统公告
1
/
1
请查看完所有公告
准确计算某个算法的运行时间(以分解质因数为例)
最后更新于 2025-06-15 17:36:18
作者
win999
分类
算法·理论
复制 Markdown
查看原文
更新内容
使用ctime库中的clock()方法,可以计算某段程序代码运行时花费的时间,这里以分解质因数算法为例,在main函数中,调用分解质因数算法之前记录了一次clock()的时间值,调用算法结束后又记录了一次clock(),用两次差值除以 CLOCKS_PER_SEC(时间滴答常数)得到秒数,乘以1000得到毫秒数。 ```cpp #include <iostream> #include <vector> #include <ctime> using namespace std; // 函数声明:分解质因数函数 vector<int> pFact(int n); int main() { int number; cout << "请输入一个正整数: "; cin >> number; if (number <= 0) { cout << "请输入一个正整数。" << endl; return 1; } clock_t start = clock(); //开启程序处理时间计时器 vector<int> factors = pFact(number); cout << number << " 的质因数分解结果是: "; for (size_t i = 0; i < factors.size(); ++i) { cout << factors[i]; if (i < factors.size() - 1) { cout << " * "; } } cout << endl; //计算程序运行时间的代码 clock_t end = clock(); double duration = static_cast<double>(end - start) / CLOCKS_PER_SEC * 1000; cout << "程序运行时间: " << duration << " 毫秒" << endl; return 0; } // 质因数分解函数 vector<int> pFact(int n) { vector<int> factors; // 处理2的倍数 while (n % 2 == 0) { factors.push_back(2); n /= 2; } // 处理奇数因子 for (int i = 3; i * i <= n; i += 2) { while (n % i == 0) { factors.push_back(i); n /= i; } } // 如果n本身是质数(最终未能被除尽) if (n > 2) { factors.push_back(n); } return factors; } ```
正在渲染内容...
点赞
1
收藏
1