算法的基本概念及特性(有穷性、确定性、可行性、输入和输出)
2016-08-29 17:06
721 查看
算法(algorithm)是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作。此外,一个算法还具有下列5个重要特性:
1) 有穷性
一个算法必须总是(对任何合法的输入值)在执行有穷步之后结束,且每一步都可在有穷时间内完成。
2) 确定性
算法中每一条指令必须有确切的含义,读者理解时不会产生二义性。即对于相同的输入只能得出相同的输出。
3) 可行性
一个算法是可行的,即算法中描述的操作都是吋以逋过已经实现的基本运算执行有限次来实现的。
4) 输入
一个算法有零个或多个的输入,这些输入取自于某个特定的对象的集合。
5) 输出
一个算法有一个或多个的输出,这些输出是同输入有着某种特定关系的量。
通常设计一个“好”的算法应考虑达到以下目标:
正确性:算法应当能够正确地解决求解问题。 可读性:算法应当具有良好的可读性,以助于人们理解。 健壮性:当输入非法数据时,算法也能适当地做出反应或进行处理,而不会产生莫名其妙的输出结果。 效率与低存储量需求:效率是指算法执行的时间,存储量需求是指算法执行过程中所需要的最大存储空间,这两者都与问题的规模有关。
参考:
http://c.biancheng.net/cpp/shujujiegou/
相关文章推荐
- Java输入输出(IO)和流的基本概念
- Java输入输出(IO)和流的基本概念
- Java基本数据类型的输入输出
- .NET特性的一些基本概念 via C#
- 第二章 基本数据类型,输入、输出,数组 分类: java 2009-12-29 16:48 339人阅读 评论(0) 收藏
- 设计一个程序,从键盘上输入若干字符串,利用算法库中的查找函数对给定的字符串进行查找,将查找后的结果输出
- JMS基本概念、功能与特性(整理)
- JMS基本概念、功能与特性(整理)
- 关于二叉树前序输入且输出结构的算法实现
- 【每天算法1】:用java 语言实现,输入一个数,就相应地输出的几维数组
- 每天一道算法题7 查找链表中倒数第k个结点 ; 输入一个单向链表。如果该链表的结点数为奇数,输出中间的结点;如果链表结点数为偶数,输出中间两个结点前面的一个
- 输入12345,相应输出一万两千三百四十五的算法
- JAVA学习心得--基本数据类型,输入、输出,数组
- NETBIOS 网络基本输入/输出系统协议
- Java的基本I/O(输入/输出)系统copy from (http://blog.sina.com.cn/s/blog_5ec67df20100d6ao.html)
- 第二章 基本数据类型,输入、输出,数组
- 什么是Netbios(网络基本输入/输出系统)?
- 第一章 基本概念 1.1 算法
- STL 算法基本概念
- 学习面向对象 之 面向对象的基本概念:类和面向对象的特性