Time complexity 为什么复杂性分析考虑运行时而不是编译时? 在分析任何算法时,我们考虑它的时间复杂度。根问题,即设计者主要关心的是运行时间而不是编译时间。 当我们分析某个给定算法的复杂性时,我们只关心算法所需的运行时间,而不关心编译时间。为什么会这样?

Time complexity 为什么复杂性分析考虑运行时而不是编译时? 在分析任何算法时,我们考虑它的时间复杂度。根问题,即设计者主要关心的是运行时间而不是编译时间。 当我们分析某个给定算法的复杂性时,我们只关心算法所需的运行时间,而不关心编译时间。为什么会这样?,time-complexity,Time Complexity,因为坦率地说,程序员并不重要。您正在为客户机设计代码,最终您将为他们编译代码。一旦编译成.jar或.exe,就不必再次编译。他们不在乎编译是否花了你四个小时,他们只看到运行时的效率。如果你只编译了一次,但是你运行了4000次代码,这将更加重要。运行时还是编译时 编译只发生一次。因此,在产品的整个生命周期内,其成本是恒定的。复杂性是衡量成本如何与投入成比例增长的指标。固定成本与投入不成比例增长。因此,它的贡献为零。编译时间可能会根据同一任务的程序大小而变化,但运行时间只会根据算法而变化,因此运行时

因为坦率地说,程序员并不重要。您正在为客户机设计代码,最终您将为他们编译代码。一旦编译成.jar或.exe,就不必再次编译。他们不在乎编译是否花了你四个小时,他们只看到运行时的效率。如果你只编译了一次,但是你运行了4000次代码,这将更加重要。运行时还是编译时

编译只发生一次。因此,在产品的整个生命周期内,其成本是恒定的。复杂性是衡量成本如何与投入成比例增长的指标。固定成本与投入不成比例增长。因此,它的贡献为零。

编译时间可能会根据同一任务的程序大小而变化,但运行时间只会根据算法而变化,因此运行时间很重要。

因为编译时间是运行时间的函数。

(注意,我发得晚了) 好吧,我明白为什么这很明显。 简单地说,“编译时间并不重要”
重要的是程序在一组谨慎的输入上执行的速度有多快

什么?你确定吗?作为软件产品的最终用户,你上一次对其糟糕的运行时性能感到满意是什么时候,仅仅因为程序员不需要等待很长时间就可以编译它?这并不是说编译时间被完全忽略了。例如,在JIT编译器中,程序的编译时间是运行时成本。