所谓算法,就是解决问题的具体步骤。通常,一个问题存在多个不同的算法。不同的算法需要的时间可能有很大的差别。即使同一个算法,算法都执行时间也会随着输入数据量的变化而发生很大的改变。
当数据量很小时,处理的时间很短,但是数据量变大时,处理的时间会有什么变化?
比如说处理一个数据,算法执行时间是1,但数据量变为100,1000时,处理的时间会同样增加10倍还是1000倍,还是变成更多?
因此,判断一个算法优势的标准就是随着数据量增加,程序处理时间增加量最小的,就是优秀的算法。
如何对是算法进行比较?理论上就是根据算法写好程序,然后在同样的时间内看谁处理的数据最多。但是这里存在几个问题。
算法只有写成程序才能判断算法的好坏。但是在程序设计阶段,是不知道算法好坏的,如果事后证明算法效率很低,就得重新设计算法。
同样一个算法,在不同电脑上运行时间也不同。用同样的算法写的同一个程序,配置好的电脑可能时间很短就执行完了,配置低的电脑执行时间就长了。
不同编程语言写的程序本身执行效率就有不同变化。c语言编写的程序速度快,python编写的程序速度就很慢。