算法:对特定问题求解步骤的一种描述。
本章内容是关于时间复杂度的一些阐述,一段可实现功能的代码的优劣性可通过它的时间复杂度和空间复杂度来衡量,一段代码的时间开销越短,就说明这段代码就越优,毫无疑问是要保证它能正确实现功能的前提下。但我们不能简单地对这段代码测试运行时间,因为有很多的客观因素影响代码的执行速度,比如机器性能、实现算法所采用的编程语言,性能越优的主机执行代码的速度越快,这是毋庸置疑的,反之越慢。越高级的语言执行速度越慢,比如java语言写的程序比C语言慢,所以我们就把这段代码中所有语句的频度之和记为T(n),它是该算法问题规模n的函数,可能有小伙伴不知道频度什么意思?这里简单解释一下,一个句子的频度是指该语句在算法中被重复执行的次数。
注意:当问题规模n足够大时,我们可以忽略低阶的项数,多项相加,只保留最高阶的项,且系数变为1.例如f(n)=an^3+bn^2+cn的时间复杂度为O(n^3).通常以最深层循环内的语句的频度来表示时间复杂度。记为T(n)=O(f(n)).
关于时间复杂度的比较: