什么算法呢?
算法就是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每个指令表示一个或者多个操作。
算法特征:
输入输出:算法至少有一个输入条件和输出结果。
有穷性:算法需要在有限的执行次数和执行时间下获得结果。
确定性:算法的每一步操作执行都应该是明确的。
可行性:算法的每个操作必须都是切实可行的。
算法设计要求:
正确性:算法是否获得了正确的结果。
可读性:算法可以被阅读理解的难易程度。
健壮性:算法需要对异常情况的处理。
高效率:时间效率执行算法需要消耗的时间资源。
低存储:储存量低执行算法需要消耗的空间资源。
时间复杂度:
时间复杂度,又称时间复杂性,算法的时间复杂度是一个函数,它描述是该算法的运行时间。时间复杂度常用大O符号表述。
1.用常数1取代运行时间中所有常数 O(1)
2.在修改运行次数的函数中,只保留最高阶项 n^3+2n^2+5 ——> O(n^3)
3.在最高阶存在且不等于1,则去除这个项目相乘的常数 2n^3——> O(n^3)
常见的时间复杂度:
空间复杂度:
算法的空间复杂度通过计算算法所需的存储空间,在一个算法执行的过程中,变量、结果都需要保存起来,进行下一步计算,这些称为算法执行时的辅助空间。在考量算法的空间复杂度时,主要是考虑算法执行时所需的辅助空间。