【问题标题】:Time complexity of c programsc程序的时间复杂度
【发布时间】:2018-02-21 01:09:40
【问题描述】:

在c中是否有任何代码可以分析程序在给出输入后所花费的时间,以便我们可以通过给出不同的输入来找到程序的时间复杂度。 但是不能容忍1毫秒的误差。我要准确的时间。

【问题讨论】:

  • 您建议如何使用经过的时间来确定算法复杂度?
  • 什么是准确时间?
  • 术语“时间复杂度”(google that)具有误导性,您想知道如何获取程序的“执行时间”。
  • 如果您在 Windows、Linux 或 macOS 等操作系统下运行程序,您将永远无法获得“准确时间”。操作系统总是和你一样运行其他代码,所以每次运行程序的执行时间都会不同。

标签: c data-structures


【解决方案1】:

如果您正在为整个程序计时,您甚至不需要进行任何额外的编码,因为有 time 命令

> time ./a.out

这会给出类似的输出

real    0m5.002s
user    0m0.001s
sys     0m0.001s

【讨论】:

    【解决方案2】:

    有计算时间的函数。h

    就用它作为下面的例子

    clock_t start = clock();
     // your job
    clock_t end = clock();
    float seconds = (float)(end - start) / CLOCKS_PER_SEC;
    

    【讨论】:

    • 是的,但我不能容忍 1 毫秒的错误。
    • 但它没有给我确切的时间。它不准确。
    • 你永远不可能有准确的执行时间,它总是取决于你的 CPU 频率
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-15
    • 2023-02-26
    相关资源
    最近更新 更多