初步接触数据结构——算法
来源:互联网 发布:剑灵捏脸数据图导入 编辑:程序博客网 时间:2024/05/29 18:54
当我们把一个实际问题抽象为一个适合的数学模型时,需要为这个模型设计一个合适的算法,以便我们解决实际问题,那么算法就是为解决某问题而采取的具体的,有限的操作步骤,这时候算法就成为了解决问题的核心。
算法具有五个特性分别为有穷性:步骤有限;确定性:定义确切;可行性:机器可以执行;零个或多个输入和一个或多个输出,这是算法的基本特征。
算法是解决问题的关键,算法的好坏关系到问题解决的结果,那么一个好的算法就要考虑达到以下的目标:
1.正确性:a.程序不含语法错误;b.程序对于几组输入数据能够得出满足要求的结果;c.对精心选择带有刁难性的几组数据能得出满足要求的结果;d.程序对于一切合法的输入数据都能产生满足要求的结果
2.可读性:算法主要是为了人的阅读和交流。其次才是机器的执行,良好的可读性利于人对于算法的理解,容易进行调试和修改。a.有适当的注释,书写规范,方便其他程序员阅读,复用;b.遵循一定的命名规则:普通变量名:小写字母;结构体类型名:开头字母大写。
3.健壮性:当输入数据非法时,算法能适当地作出反应或进行处理,保证不会产生莫名其妙的输出结果。处理出错的方法是返回一个表示错误或错误性质的值,以便在更高的抽象层次上进行处理,不应中断程序的执行。
4.效率和低存储量需求:效率是算法执行的时间,同一个问题有多种解决算法,执行时间少的效率高。存储量需求是算法执行过程中所需要的最大存储空间。利用越少的存储空间和最少的执行时间,这是对算法的要求。效率和低存储量需求和问题的规模有关。
通常解决一个问题可以有多种算法,我们需要选择一个优秀的算法来解决问题, 评价算法优秀的重要依据是算法执行时所需的资源——算法的时间复杂度和空间复杂度,并且还与问题的规模和初始状态有关。我们需要估算一个算法的效率和存储量需求,从而选择合适的算法。
- 初步接触数据结构——算法
- VSTO——初步接触
- 算法分析之初步接触
- OpenCV学习(1)——初步接触
- Javascript——DOM初步接触
- servlet————初步接触一
- 新手上路——初步接触数据库SQL Server
- 小白学数据结构——零、算法初步(算法分类及最大子数组小试牛刀)
- 数据结构和算法初步认识
- 接触过的前端数据结构与算法
- 数据结构与算法学习笔记——二叉树的初步理解
- 大话数据结构与算法:算法初步1
- Nhibernate 初步接触
- Nhibernate 初步接触
- VML初步接触
- 初步接触DELPHI
- EJB3初步接触
- Ruby RSpec 初步接触
- 基于PHP的cURL快速入门
- apache配置,php中没有php5apache2_2.dll的原因及解决办法
- px 和dip 相互转化
- mysql区分大小写
- 在.net中读写config文件的各种方法
- 初步接触数据结构——算法
- DES生成密钥文件实现加密解密
- Notice: Undefined variable解决办法
- 虚拟机下ubuntu静态ip设置
- OneStack:Ubuntu 12.04 (或11.10) 一键部署安装OpenStack云计算平台
- 将awstats分析日志结果导入mysql
- c#调用存储过程两种方法
- STL中map原理解析
- Android中使用dimen定义尺寸