校招刷题群
高效刷题 迎战校招
校招精选试题
近年面笔经面经群内分享
Java刷题群 前端刷题群 产品运营群
首页 > 数据结构 > 时间、空间复杂度
题目

算法的运行时间及加、减、乘、除、转移、存、取等基本运算。要想准确地计算总运算时间是不可行的()

A.

B.

解答

正确答案是 A


A
1. 一般情况下,算法的基本操作重复执行的次数是模块n的某一个函数f(n),因此,算法的时间复杂度记做:T(n)=O(f(n))
分析:随着模块n的增大,算法执行的时间的增长率和 f(n) 的增长率成正比,所以 f(n) 越小,算法的时间复杂度越低,算法的效率越高。
2. 在计算时间复杂度的时候,先找出算法的基本操作,然后根据相应的各语句确定它的执行次数,再找出 T(n) 的同数量级(它的同数量级有以下:1,log(2)n,n,n log(2)n ,n的平方,n的三次方,2的n次方,n!),找出后,f(n) = 该数量级,若 T(n)/f(n) 求极限可得到一常数c,则时间复杂度T(n) = O(f(n))


C 4条回复 评论
米米大户

说是准确地计算,精确到一定程度没有差异么?


发表于 2018-10-23 11:27:38
0 0
碧海问舟

通过计算机可以获得准确的程序执行时间。

发表于 2018-10-23 11:27:31
0 0
窦先生

我觉得统计运算时间这个问题是个悖论。理由如下

  • 我们不知道基本运算时间。
  • 我们统计基本运算时间需要对应的计时程序。
  • 计时程序本身也是由基本运算组成。
  • 在不知道基本运算时间的情况下我们也就不知道计时程序的运行时间。
    从而导致其记录的运算时间不可靠。

发表于 2018-10-23 11:27:18
0 0
小小精灵


同样的算法,我放在不同的机器,不同的系统上,运行时间都不同。准确的运行时间?这个是怎么定义的呢?

发表于 2018-10-23 11:27:08
0 0