算法简介
● 什么是算法
       ➢一系列的计算步骤,用来将输入数据转化成输出结果
● 算法的意义
       ➢用于解决特定的问题
       ➢解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大
● 比较常听到的较为简单的算法
       ➢排序算法
       ➢加密算法

算法的特征
● 有穷性
       ➢执行有限个步骤之后终止
● 确切性
       ➢每一步有确切的定义
● 输入
       ➢有0个或N个输入(N >= 1)
● 输出
       ➢至少一个输出
● 可行性
       ➢任何计算步骤都是可以被分解为基本的可执行的操作步骤,即每个计算步骤都可以在有限时间内完成

如何评定一个算法的优劣?
● 如果单从效率上进行评估,可能会想到这么一种方案:
       ➢比较不同算法对同一组输入的执行处理时间(存在比较明显的缺点)
         (1)执行时间严重依赖硬件以及运行时各种不确定的环境因素
         (2)必须编写相应的测算代码
         (3)测试数据的选择比较难保证公正性
● 一般从一下维度来评估算法的优劣
       ➢正确性
       ➢可读性
       ➢健壮性(对不合理输入的反应能力和处理能力)
       ➢时间复杂度:估算程序指令的执行次数
       ➢空间复杂度:估算所需占用的额存储空间

大O表示法
算法(一):算法简介

常见复杂度
算法(一):算法简介

常见排序算法的复杂度
算法(一):算法简介

算法的优化方向
● 用尽量少的内存空间
● 用尽量少的执行步骤
● 根据情况可以
       ➢空间换时间
       ➢时间换空间

相关文章: