数据结构与算法(2)-大O表示法
2018-03-16 17:20
267 查看
1.算法的基本特征
算法是一组可行的,确定的,有穷的对问题的求解方法,具有以下特征:
1)有穷性
算法的执行步骤和执行时间必须是有限的.
2)确切性
算法的每一步必须有明确的定义和描述.
3)输入
每个算法必须有明确的输入
4)输出
算法必须的明确的输出
5)可行性
算法的每一个步骤必须是明确可执行的.
2.算法的性能评估
1)时间复杂度
算法执行所需要的时间越短越好.
2)空间复杂度
算法执行过程中消耗的存储空间越小越好.
3.大O表示法
以数组为例,假设数组中不会有重复数据,来看数组操作所需要的步数.
插入:一步即可,直接放入第一个空位
查找:最快一步找到,最慢N步找到,平均N/2步.
删除:平均查找N/2步,移动N/2步
大O表示法旨在表达出算法执行的步骤和节点数量之间的关系,并剔除固定常数,通常用于表达时间复杂度.
算法是一组可行的,确定的,有穷的对问题的求解方法,具有以下特征:
1)有穷性
算法的执行步骤和执行时间必须是有限的.
2)确切性
算法的每一步必须有明确的定义和描述.
3)输入
每个算法必须有明确的输入
4)输出
算法必须的明确的输出
5)可行性
算法的每一个步骤必须是明确可执行的.
2.算法的性能评估
1)时间复杂度
算法执行所需要的时间越短越好.
2)空间复杂度
算法执行过程中消耗的存储空间越小越好.
3.大O表示法
以数组为例,假设数组中不会有重复数据,来看数组操作所需要的步数.
插入:一步即可,直接放入第一个空位
查找:最快一步找到,最慢N步找到,平均N/2步.
删除:平均查找N/2步,移动N/2步
大O表示法旨在表达出算法执行的步骤和节点数量之间的关系,并剔除固定常数,通常用于表达时间复杂度.
相关文章推荐
- 《数据结构与算法》学习笔记4 存储对象的数组和大O表示法
- 数据结构与算法(单循环链表_约瑟夫问题)
- 仿真算法数据结构与算法 C++实现
- 【数据结构与算法】浅谈数据结构与算法
- 数据结构与算法-线性表的定义与特点
- 数据结构与算法-字符串反转
- 研磨数据结构与算法-05双端链表与双向链表
- 数据结构与算法-线性表顺序存储结构删除操作的实现
- 数据结构与算法究竟重要吗?
- 数据结构与算法-----冒泡排序
- 数据结构与算法 LeetCode编程练习--Contains Duplicate II
- 数据结构与算法的联系
- 数据结构与算法面试题80道(6)
- 数据结构与算法面试题80道(22)
- 数据结构与算法面试题80道(36)
- 数据结构与算法汇总
- 数据结构与算法汇总(持续更新中)
- 数据结构与算法习题汇总(4)
- 数据结构与算法的分析 —— 平均时间复杂度 vs 分摊时间复杂度
- 数据结构与算法之九 树结构