1.算法分析
1)算法概念
>算法是对特定问题求解步骤的一种描述,是一有限长的操作序列
2)算法特性
>有穷性:算法在执行有穷步后能结束
>确定性:每步定义都是确定、无歧义的
>可行性:每一条运算应足够基本(已验算正确)
>输入:有0或者多个输入
>输出:有1或者多个输出
3)算法例子
>例子:选择排序
>问题:递增排序
>解决方案:逐个选择最小的数据
>算法框架:
for (int i=0;i<n-1;i++){
从a[i]检查到a[n-1],找到最小数;
若最小数在a[k],交换a[i]与a[k];
}
4)算法设计的要求
>正确性:满足具体问题的需求
>可读性:便于理解和修改
>健壮性:当输入数据非法时,也能适当反应
> 效率性:执行时间短
>空间省:执行中需要的最大存储空间
5)衡量算法标准
>时间复杂度
>衡量算法效率,主要根据算法执行所需要的时间,即时间复杂度
事后统计法:计算算法开始时间与完成时间差值
事前统计法:依据算法选用何种策略及问题的规模n,是常用的方法
>空间复杂度
>空间复杂度指算法执行时,所需要存储空间的量度。