C语言中算法的基本特性和表达方式
算法的基本特性
算法包含两方面的内容:算法设计和算法分析算法设计其实就是针对某一特定类型的问题而设计的一个实现过程。算法有以下几个特性:
有穷性
确定性
可行性
输入
输出
也就是说我们在设计算法是的满足上面所说的特性。当然算法也是有好有坏的,那么我们怎样去衡量一个算法的优劣呢?算法分析其实就是在衡量一个算法的优劣,通常会从一下几个方面来分析:
正确性
可读性
健壮性
时间复杂度和空间复杂度
算法的表达方式
在描述一个算法时通常使用的方法有:自然语言、流程图、N-S图等。
自然语言
自然语言这种表达方式通俗易懂,我们通过一个具体的实例了解一下。
需求:任意输入3个数,求出其中的最小数。
(1) 定义4个变量分别是a,b,c和min。
(2) 输入大小不同的三个数分别赋值给a,b,c。
(3) 判断a是否小于b,如果小于,则将a的值赋给min,否则将b的值赋给min。
(4) 判断min是否小于c,如果小于,则执行(5),否则将c的值赋给min。
(5) 输出min。这种表达方式的好处就是简单易懂,但是当遇到复杂的算法时自然语言就显得不是很方便了。
流程图
流程图就是用一些图框来代表各种不同性质的操作,用流程线来指示算法的执行方向。他的特点就是直观形象,应用很广泛。下图介绍了流程图的符号以及含义
流程图有三种基本结构,即顺序结构、选择结构和循环结构。
顺序结构:顺序结构就是简单的线性结构
选择结构:选择结构也称为分支结构
循环结构:反复执行一系列操作,知道条件不成立时终止。
我们再把上面的需求用流程图来表示一下
N-S流程图
N-S流程图是将全部的算法写在一个矩形框内,省去了流程图中的流程线。下面继续看一个实例:需求:输入一个数,判别是否为素数。
算法的基本特性和算法的表示介绍到就结束了。
碧茂课堂精彩课程推荐:
1.Cloudera数据分析课;
2.Spark和Hadoop开发员培训;
3.大数据机器学习之推荐系统;
4.Python数据分析与机器学习实战;
现在注册互动得海量学币,大量精品课程免费送!
关注最新行业动态,
加群进行技术交流!