数据结构(Java语言描述·微课版)
上QQ阅读APP看书,第一时间看更新

1.3.2 影响算法效率的因素

一个算法用高级语言实现以后,在计算机上运行时所消耗的时间与很多因素有关,主要因素列举如下。

①依据算法所选择的具体策略。

②问题的规模,如求100以内还是1000以内的素数。

③编写程序的语言,对于同一个算法,实现语言的级别越高,执行效率往往越低。

④编译程序所产生的计算机代码的质量。

⑤计算机执行指令的速度。

很显然,一个算法用不同的策略实现,或用不同的语言实现,或在不同的计算机上执行,它所耗费的时间是不一样的,因而效率均不相同。由此可知,使用一个绝对的时间单位去衡量一个算法的效率是不准确的。在上述5个因素当中,最后3个均与具体的计算机有关,抛开这些与计算机硬件、软件有关的因素,仅考虑算法本身的效率,可以认为一个特定算法的“执行工作量”只依赖于问题的规模,换而言之是问题的规模的函数。