算法的性质包括:
- 可行性: 组成算法的每一条指令都必须是能够被人或机器确切执行的。
- 确定性: 算法每执行一步之后,对于它的下一步,应该有明确的指示。即,保证每一步之后都有关于下一步动作的指令,不能缺乏下一步指令或仅仅含有模糊不清的指令。
- 有穷性: 算法的执行必须在有限步内结束。
- 输入
- 输出
算法代价的描述
算法的时间复杂度,这是衡量代码优劣最主要的参数。
比如一个for循环 O(n),其中n为输入规模
比如2个嵌套for循环O(n^2)
大O标记,表示的是算法的紧上界(注意是≤ ).如果只是<,就只是上界,用小O标记,表示。
还有ω,Ω,表示紧下届,下届。Θ表示,同时上界和下届。
当然,普遍都用大O记号表示,其他的在算法分析中很有用。