1、什么是算法呢?

算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作。简单来说,算法就是解决问题的方式和方法。

2、算法具有五个基本特征:输入、输出、有穷性、确定性和可行性。

1>输入

算法具有零个或多个输入。

尽管对于绝大多数算法来说,输入参数都是必要的。但是有些时候,像打印“I love fishc.com”,就不需要啥参数啦。

void print(){

printf(“I love fishc.comn”);}

2>输出

算法至少有一个或多个输出。

算法是一定要输出的,不需要它输出,那你要这个算法来干啥?

输出的形式可以是打印形式输出,也可以是返回一个值或多个值等。

3>有穷性

指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成。

4>确定性

算法的每一个步骤都具有确定的含义,不会出现二义性。

算法在一定条件下,只有一条执行路径,相同的输入只能有唯一的输出结果。

算法的每个步骤都应该被精确定义而无歧义。

5>可行性

算法的每一步都必须是可行的,也就是说,每一步都能够通过执行有限次数完成。

3、算法设计的要求

1>正确性

算法的正确性是指算法至少应该具有输入、输出和加工处理无歧义性、能正确反映问题的需求、能够得到问题的正确答案。

大体分为以下四个层次:

算法程序没有语法错误。

算法程序对于合法输入能够产生满足要求的输出。

算法程序对于非法输入能够产生满足规格的说明。

算法程序对于故意刁难的测试输入都有满足要求的输出结果。

2>可读性

算法设计另一目的是为了便于阅读、理解和交流。

我么写代码的目的,一方面是为了让计算机执行,但还有一个重要的目的是为了便于他人阅读和自己日后阅读修改。

3>健壮性

当输入数据不合法时,算法也能做出相关处理,而不是产生异常、崩溃或莫名其妙的结果。

4>时间效率高和存储量低

生活中,每个男人都希望找一个贤惠的老婆,她们温柔又体贴,美丽又大方,还会做着一手的好菜。

好算法就犹如好老婆,应该具备时间效率高和存储量低的特点。

所以在设计算法的时候我们应该尽量思考这两方面的问题!

算法的特征及设计要求相关推荐

  1. 算法的特性和设计要求

    五个基本特征:输入.输出.有穷性.确定性和可行性. 输入输出:算法具有零个或多个输入. 有穷性:指算法在执行有限的步骤之后,自动结束而不会出现无限循环,并且每一个步骤在可接受的时间内完成. 确定性:算 ...

  2. K-近邻算法之特征工程-特征预处理

    K-近邻算法之特征工程-特征预处理 1 什么是特征预处理 1.1 特征预处理定义 scikit-learn的解释 provides several common utility functions a ...

  3. R语言基于机器学习算法进行特征筛选(Feature Selection)

    R语言基于机器学习算法进行特征筛选(Feature Selection) 对一个学习任务来说,给定属性集,有些属性很有用,另一些则可能没什么用.这里的属性即称为"特征"(featu ...

  4. 利用ReliefF算法对特征变量做重要性排序,实现特征选择

    利用ReliefF算法对特征变量做重要性排序,实现特征选择. 替换数据即可. 基于relieff算法的分类预测. 通过重要性排序图,选择重要的特征变量,来实现数据降维的目的. matlab语言. ID ...

  5. 人脸识别算法之特征脸方法(Eigenface)

    一.人脸识别算法之特征脸方法(Eigenface) 1.原理介绍及数据收集 特征脸方法主要是基于PCA降维实现. 详细介绍和主要思想可以参考 https://www.cnblogs.com/littl ...

  6. opencv曝光算法_OpenCV特征点提取算法对比

    除了我们熟知的SIFT.SURF.ORB等特征点提取算法,OpenCV中还提供了十余种特征点提取算法.最近在整理以往的ppt和报告,看到其中一页ppt,发现已经忘得差不多了,就再写篇博客复习下好了,这 ...

  7. [时间序列预测]基于BP、RNN、LSTM、CNN-LSTM算法多特征(多影响因素)用电负荷预测[保姆级手把手教学]

    系列文章目录 深度学习原理-----线性回归+梯度下降法 深度学习原理-----逻辑回归算法 深度学习原理-----全连接神经网络 深度学习原理-----卷积神经网络 深度学习原理-----循环神经网 ...

  8. 智源研究院发布“智能体系架构与芯片”重大研究方向,打造通用智能处理器,突破“算法共性特征”难题...

    9 月 18 日上午,北京智源人工智能研究院(以下简称"智源研究院")在北大科技园举行"智能体系架构与芯片"重大研究方向发布会,智源研究院院长黄铁军以及北京人工 ...

  9. 人脸识别经典算法:特征脸方法(Eigenface)

    https://www.toutiao.com/a6698955075127083527/ 这个算法需要数学知识特别好的人才会看得懂吧! 步骤一:获取包含M张人脸图像的集合S.在我们的例子里有25张人 ...

  10. sas数据集怎么导出_PCA算法 | 数据集特征数量太多怎么办?用这个算法对它降维打击!...

    本文始发于个人公众号:TechFlow,原创不易,求个关注 今天是机器学习专题的第27文章,我们一起来聊聊数据处理领域的降维(dimensionality reduction)算法. 我们都知道,图片 ...

最新文章

  1. 打造自己的树莓派监控系统2--内存监控-matplotlib显示数据
  2. ubuntu查看硬件信息
  3. C语言之计算大数阶乘,如计算100!和1000!等~~~
  4. python——type()、metaclass元类和精简ORM框架
  5. spark sql读取hive底层_scala – 从一个hive表中读取并使用spark sql写回来
  6. python3-字典中的一些常用方法
  7. 商务智能之绩效管理 Performance Management
  8. datatables每页显示数据刷新后不变_2019北京积分落户名单数据的一些分析
  9. Node — 第三天
  10. shiro学习(2):第一个shiro程序
  11. Illustrator 教程,如何在 Illustrator 中编组内容?
  12. rust里面的柴油桶有什么用_用了橡木桶的红酒就一定好吗?什么样的酒才适合橡木桶?...
  13. Arduino 和 雨滴传感器 滴水实验
  14. SECS/GEM协议开发应用
  15. html-QQ登陆界面
  16. 计算机PS个人规划目标,这里有一份PS个人陈述写作规划
  17. matlab分位数回归,分位数回归及其实例
  18. 宏基笔记本linux系统安装图解,宏基Aspire 4738ZG在linpus linux下安装XP系统教程
  19. 写的一个58获取房东手机号,爬虫,奈何号码都是加密,练手用
  20. 周末学习总结(LIO标定+kitti数据集的使用+evo工具的使用+开源数据集+ssh的使用)

热门文章

  1. HDU 5442 (串的最大表示+KMP)
  2. oracle mod函数
  3. 苹果电脑系统如何设置成中文
  4. python之控制台版本(电影)增删改查
  5. 2021年山东省安全员C证考试及山东省安全员C证模拟考试
  6. 从键盘输入一系列字符(以回车键结束),并按字母、数字及其它字符分类统计,最后显示这三类的统计结果
  7. 别人有公众号你也可以有,5分钟申请公众号详细步骤
  8. 初创公司需要哪些部门_哪些初创公司在安全方面犯了错误
  9. 彻底解决Vista狂读硬盘,硬盘灯狂闪的问题
  10. 狂奔的蜗牛小组团队介绍