算法特性
1、输入与输出
2、有穷性
3、确定性
4、可行性
算法设计要求
1、正确性:算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案
2、可读性:为了方便阅读理解和交流
3、健壮性::当输入数据不合法时,算法应该能做出相关处理, 而不是产生异常或莫名其妙的结果
4、时间效率高和存储量低:设计算法应该该尽量满足时间效率高和存储量低的需求
算法效率度量方法
1、时候统计方法:这种方法主要是通过设计好的测试程序和数据,利用计算机计时器对不同算法编制的程序的运行时间进行比较,从而确定算法效率的高低
2、事前分析估算方法:在计算机程序编制前,依据统计方法对算法进行估算
算法时间复杂度
推到大O阶:
1、用常数1取代运行时闺中的所有加法常数
2、在修改后的运行次数函数中,只保留最高阶项
3、如果最高阶项存在且不是1,则去除与这个项相乘的常敢
常见时间复杂度
常用的时间复杂度所耗费的时间从小到大依次是:
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)