算法学习(一)

什么是算法

算法是对特定问题求解步骤的一种描述;

数据结构(骨架)+ 算法(灵魂)=程序

算法特性

  • 有穷性:算法是由若干条指令组成的有穷序列,总是在执行若干次后结束,不可能永不停止;
  • 确定性:每条语句有确定的含义,无歧义;
  • 可行性:算法在当前环境条件下可以通过有限次运算实现;
  • 输入输出:有零个或多个输入,一个或多个输出;

什么才是好的算法?

  1. 正确性;
  2. 易读性;
  3. 健壮性;对非算法数据及操作有较好的反应以及处理;
  4. 高效性;运行效率要高;
  5. 低存储性;所需存储空间要低;

算法占用的空间大小称为空间复杂度,一般将算法的辅助空间作为衡量空间复杂度的标准;

算法占用的空间包括

  1. 输入/输出数据;
  2. 算法本身;
  3. 额外需要的辅助空间

时间复杂度:算法执行次数,作为时间复杂度的度量标准;

PS: 有限的常数的时间复杂度都是O(1);

分支结构中,无论是真是假,执行次数都是恒定的,不会随着n的变大二发生变化;
所以,单纯的分支结构(不包含在循环结构中的),其时间复杂度都是O(1);

Larwas
请先登录后发表评论
  • 最新评论
  • 总共0条评论