算法的复杂度主要包括
算法的复杂度主要包括时间复杂度和空间复杂度。
算法的时间复杂度和空间复杂度合称为算法的复杂度。
时间复杂度:时间复杂度是指执行算法所需要的计算工作量。
空间复杂度:是对一个算法在运行过程中临时占用存储空间大小的量度。
算法的复杂性体运行该算法时的计算机所需资源的多少上,计算机资源最重要的是时间和空间(即寄存器)资源,因此复杂度分为时间和空间复杂度。
一个算法花费的时间与算法中语句的执行次数成正比例,哪个算法中语句执行次数多,它花费时间就多。一个算法中的语句执行次数称为语句频度或时间频度,记为Tn。
一般情况下,算法中基本操作重复执行的次数是问题规模n的某个函数,用Tn表示,若有某个辅助函数fn,使得当n趋近于无穷大时,Tn/f n的极限值为不等于零的常数,则称fn是tn的同数量级函数。记Tn=Ofn,称Ofn为算法的渐进时间复杂度,简称时间复杂度。
复杂度分析:
通常一个算法的复杂度是由其输入量决定的,随着输入的增加,不同算法的复杂度增长速度为了降低算法复杂度,应当同时考虑到输入量,设计较好的算法。
同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。