算法的特征及设计要求
1、什么是算法呢?
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。简单来说,算法就是解决问题的方式和方法。
2、算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。
1>输入
算法具有零个或多个输入。
尽管对于绝大多数算法来说,输入参数都是必要的。但是有些时候,像打印“I love fishc.com”,就不需要啥参数啦。
void print(){
printf(“I love fishc.comn”);}
2>输出
算法至少有一个或多个输出。
算法是一定要输出的,不需要它输出,那你要这个算法来干啥?
输出的形式可以是打印形式输出,也可以是返回一个值或多个值等。
3>有穷性
指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。
4>确定性
算法的每一个步骤都具有确定的含义,不会出现二义性。
算法在一定条件下,只有一条执行路径,相同的输入只能有唯一的输出结果。
算法的每个步骤都应该被精确定义而无歧义。
5>可行性
算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。
3、算法设计的要求
1>正确性
算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。
大体分为以下四个层次:
算法程序没有语法错误。
算法程序对于合法输入能够产生满足要求的输出。
算法程序对于非法输入能够产生满足规格的说明。
算法程序对于故意刁难的测试输入都有满足要求的输出结果。
2>可读性
算法设计另一目的是为了便于阅读、理解和交流。
我么写代码的目的,一方面是为了让计算机执行,但还有一个重要的目的是为了便于他人阅读和自己日后阅读修改。
3>健壮性
当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃或莫名其妙的结果。
4>时间效率高和存储量低
生活中,每个男人都希望找一个贤惠的老婆,她们温柔又体贴,美丽又大方,还会做着一手的好菜。
好算法就犹如好老婆,应该具备时间效率高和存储量低的特点。
所以在设计算法的时候我们应该尽量思考这两方面的问题!
算法的特征及设计要求相关推荐
- 算法的特性和设计要求
五个基本特征:输入.输出.有穷性.确定性和可行性. 输入输出:算法具有零个或多个输入. 有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成. 确定性:算 ...
- K-近邻算法之特征工程-特征预处理
K-近邻算法之特征工程-特征预处理 1 什么是特征预处理 1.1 特征预处理定义 scikit-learn的解释 provides several common utility functions a ...
- R语言基于机器学习算法进行特征筛选(Feature Selection)
R语言基于机器学习算法进行特征筛选(Feature Selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(featu ...
- 利用ReliefF算法对特征变量做重要性排序,实现特征选择
利用ReliefF算法对特征变量做重要性排序,实现特征选择. 替换数据即可. 基于relieff算法的分类预测. 通过重要性排序图,选择重要的特征变量,来实现数据降维的目的. matlab语言. ID ...
- 人脸识别算法之特征脸方法(Eigenface)
一.人脸识别算法之特征脸方法(Eigenface) 1.原理介绍及数据收集 特征脸方法主要是基于PCA降维实现. 详细介绍和主要思想可以参考 https://www.cnblogs.com/littl ...
- opencv曝光算法_OpenCV特征点提取算法对比
除了我们熟知的SIFT.SURF.ORB等特征点提取算法,OpenCV中还提供了十余种特征点提取算法.最近在整理以往的ppt和报告,看到其中一页ppt,发现已经忘得差不多了,就再写篇博客复习下好了,这 ...
- [时间序列预测]基于BP、RNN、LSTM、CNN-LSTM算法多特征(多影响因素)用电负荷预测[保姆级手把手教学]
系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...
- 智源研究院发布“智能体系架构与芯片”重大研究方向,打造通用智能处理器,突破“算法共性特征”难题...
9 月 18 日上午,北京智源人工智能研究院(以下简称"智源研究院")在北大科技园举行"智能体系架构与芯片"重大研究方向发布会,智源研究院院长黄铁军以及北京人工 ...
- 人脸识别经典算法:特征脸方法(Eigenface)
https://www.toutiao.com/a6698955075127083527/ 这个算法需要数学知识特别好的人才会看得懂吧! 步骤一:获取包含M张人脸图像的集合S.在我们的例子里有25张人 ...
- sas数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!...
本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法. 我们都知道,图片 ...
最新文章
- 打造自己的树莓派监控系统2--内存监控-matplotlib显示数据
- ubuntu查看硬件信息
- C语言之计算大数阶乘,如计算100!和1000!等~~~
- python——type()、metaclass元类和精简ORM框架
- spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来
- python3-字典中的一些常用方法
- 商务智能之绩效管理 Performance Management
- datatables每页显示数据刷新后不变_2019北京积分落户名单数据的一些分析
- Node — 第三天
- shiro学习(2):第一个shiro程序
- Illustrator 教程,如何在 Illustrator 中编组内容?
- rust里面的柴油桶有什么用_用了橡木桶的红酒就一定好吗?什么样的酒才适合橡木桶?...
- Arduino 和 雨滴传感器 滴水实验
- SECS/GEM协议开发应用
- html-QQ登陆界面
- 计算机PS个人规划目标,这里有一份PS个人陈述写作规划
- matlab分位数回归,分位数回归及其实例
- 宏基笔记本linux系统安装图解,宏基Aspire 4738ZG在linpus linux下安装XP系统教程
- 写的一个58获取房东手机号,爬虫,奈何号码都是加密,练手用
- 周末学习总结(LIO标定+kitti数据集的使用+evo工具的使用+开源数据集+ssh的使用)