大话数据结构——算法
来源:互联网 发布:怎么攻破一个软件 编辑:程序博客网 时间:2024/04/30 13:16
算法:算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。
为什么把数据结构和算法一起说?
想想罗密欧与朱丽叶,梁山伯和祝英台,少了一个你总会觉得奇怪吧。
算法的五个基本特性:
- 输入:有0个或多个输入;
- 输出:有1个或多个输出;
- 有穷性:步骤有限,不能无穷循环下去;
- 确定性:有确定的含义,不能出现二义性;
- 可行性:每一步都能通过有限次数完成。
算法设计的要求:
- 正确性:能正确反映问题,得到问题的正确答案;
- 可读性:便于阅读、理解和交流;
- 健壮性:即使输入不合法,算法也能处理,而不是出现异常或中止;
- 时间效率高和存储量低:像生活中人们所希望的花最少时间,办最大的事。
算法效率的度量方法:
- 事后统计法:利用测试好的程序和数据,用计算机测试运行时间判断算法的优劣。这种方法有很大缺陷,必须事先设计好程序,风险大;时间很可能依赖于计算机硬件配置;算法测试的数据选择困难,如数据量大小会影响运行时间。
- 事前分析估算法:在程序编制前,进行估算。取决于以下因素:算法采用的策略、方法(算法好坏的根本);编译产生的代码质量(软件);问题的输入规模;机器指令执行的速度(硬件条件)。
算法时间复杂度推导方法:
- 用行数1取代运行时间中的所有加法常数;例如,f(n)=1,f(n)=5等的时间复杂度都是O(1),也称为常数街;
- 在修改后的运行次数函数中,只保留最高阶的项;
- 如果最高阶存在且不是1,则去除与这个项相乘的常数。
得到的结果就是大O阶。
0 0
- 大话数据结构——算法
- 大话数据结构第二章——算法
- 大话数据结构—数据结构和算法的关系
- 大话数据结构—二叉排序树
- 【大话数据结构】——-数据结构
- 《大话数据结构》最小生成树——Prim算法
- 《大话数据结构》最小生成树——Kruskal算法
- 大话数据结构读书笔记——第二章 算法
- 【大话数据结构&算法】哈夫曼树
- 大话数据结构笔记-算法
- 大话数据结构——读书笔记
- 大话数据结构——串
- 大话数据结构——树
- 大话数据结构——图
- 大话数据结构——查找
- 数据结构——大话数据结构源码
- 大话数据结构——数据结构绪论
- 【大话数据结构】——-数据结构概述
- JSTL
- 数据库学习之旅——实验4
- C# CSV文件读写
- Fedora 23 系统安装
- 图像特效---Oilpaint油画滤镜
- 大话数据结构——算法
- js中去除空格
- struts2的模型驱动(推荐使用)、属性驱动模式
- java :非递归方法的二叉搜索树,实现部分功能
- 博弈论
- 图像特效---哈哈镜效果滤镜
- 继承关键字:public private protected
- discuz 论坛安装出现空白页
- 第十一周第二项目——圆柱的计算