如何确定我正在进行多少处理?为了最小化我的时间复杂度?

问题描述 投票:0回答:1

我希望了解日常编程中的时间复杂度。

举个例子: x, y 是某个变量

if (x == 1)
 y = 2; 
else
 y = 0;

现在我可以将其重写为

y = (x==1)? 2:0;

现在我的编译器运行并说第一个程序使用 if else 需要 5 毫秒,而下面的程序需要 0 毫秒,这怎么可能?我了解时间复杂度,但这种时间计算总是让我困惑。

所以我想好吧,让我们来数一下我在第一种方法中所做的事情的数量 1次比较+1次分配,基于比较的一半将被忽略 现在我们采用第二种方法 1 次比较 + 1 次分配,另外一半也将被忽略。 第二种方法比第一种方法更好吗?

类似地,在日常生活中,我们会遇到很多代码,我们看到这种工作速度很快,而另一些则很慢,通过一些小的调整,事情会工作得更快 我想了解一下

c++ c c++14
1个回答
0
投票

涉及两件不同的事情,需要清楚理解:

  1. 时间复杂度:对于大输入,程序的行为如何,需要多少时间 O(n)、O(n^2) 等。
  2. 程序正在执行的进程数:如果您能够使用更少的代码行来实现某些操作,那么您可以计算正在完成的操作数,并且它太复杂而难以理解,这很好,但是行业标准是协作的,并且您需要编写所有人都可读且易于理解的代码。 感谢所有评论,他们会给出清晰的理解。
© www.soinside.com 2019 - 2024. All rights reserved.