第一章1.2 算法的本质,5个特性与要求
2016-09-22 17:14
162 查看
算法的本质是解决问题的方法,是思想。
在早期的时候,人们遇到新问题,必须要去解决它,经过“冥思苦想”,“反复探索尝试”,最后总结归纳。
这才形成了今天我们学习的各种算法。
如果无法领会到解决问题的思想,无法总结归纳,就会有:“学算法有什么用?”。
不知道为什么学,自然会认为学了没意义,没有用处。
————————————————————————————
算法的5个重要特性:
①有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成。
②确定性:算法中的每条指令必须有确切的含义,不会产生二义性,并且对于相同的输入只能得出相同的输出。
③可行性:算法中的操作都是可以通过已经实现的基本运算执行有限次数实现。
④输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。
⑤输出:一个算法有一个或多个的输出,这些输出是同输入有着特定关系的量。
算法总是要解决特定的问题,问题来源就是算法的输入,期望的结果就是算法的输出,没有输入输出的算法是无意义的。
算法设计的5个要求:
①正确性:最基本要求,算法必须能解决某个问题的需求。
②可读性:算法的可读性有助于人的阅读与交流,容易调试和修改。
③健壮性:当输入的数据非法时,算法能适当做出反应或进行处理,而不会产生莫名其妙的输出结果。
④效率性:算法是为了解决大规模问题,因此需要运行效率足够快。
⑤存储性:算法在执行过程中,所需要的最大存储空间,应该尽可能的占用小。
效率性与存储性都与问题规模有关,求100人的平均分与求1000人的平均分,同一个算法的所花费的执行时间与存储空间显然是不一样的。
正确性,可读性,健壮性不仅仅是算法设计的要求,而是贯穿整个软件设计层次。
单对于算法本身来说,我们最关注的层面是效率性。
千万不能死板的认为,算法就是计算机程序。
算法是一切解决问题的思想,语言描述,伪代码,流程图,各种符号或者控制表格同样是算法。
在早期的时候,人们遇到新问题,必须要去解决它,经过“冥思苦想”,“反复探索尝试”,最后总结归纳。
这才形成了今天我们学习的各种算法。
如果无法领会到解决问题的思想,无法总结归纳,就会有:“学算法有什么用?”。
不知道为什么学,自然会认为学了没意义,没有用处。
————————————————————————————
算法的5个重要特性:
①有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都可在有穷时间内完成。
②确定性:算法中的每条指令必须有确切的含义,不会产生二义性,并且对于相同的输入只能得出相同的输出。
③可行性:算法中的操作都是可以通过已经实现的基本运算执行有限次数实现。
④输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。
⑤输出:一个算法有一个或多个的输出,这些输出是同输入有着特定关系的量。
算法总是要解决特定的问题,问题来源就是算法的输入,期望的结果就是算法的输出,没有输入输出的算法是无意义的。
算法设计的5个要求:
①正确性:最基本要求,算法必须能解决某个问题的需求。
②可读性:算法的可读性有助于人的阅读与交流,容易调试和修改。
③健壮性:当输入的数据非法时,算法能适当做出反应或进行处理,而不会产生莫名其妙的输出结果。
④效率性:算法是为了解决大规模问题,因此需要运行效率足够快。
⑤存储性:算法在执行过程中,所需要的最大存储空间,应该尽可能的占用小。
效率性与存储性都与问题规模有关,求100人的平均分与求1000人的平均分,同一个算法的所花费的执行时间与存储空间显然是不一样的。
正确性,可读性,健壮性不仅仅是算法设计的要求,而是贯穿整个软件设计层次。
单对于算法本身来说,我们最关注的层面是效率性。
千万不能死板的认为,算法就是计算机程序。
算法是一切解决问题的思想,语言描述,伪代码,流程图,各种符号或者控制表格同样是算法。
相关文章推荐
- PBRT阅读:第一章 1.2 具有照片真实感的渲染和光线追踪算法
- 数据结构和算法笔记1 算法的定义,特性,设计要求
- 算法导论:第一章 1.2 算法分析
- 《产品经理手册》读书笔记--第一章《产品经理的战略规划框架》1.2
- 编写一个PHP函数。求任意n个正负整数里面最大的连续和,要求算法时间复杂度尽可能低
- Java语言规范要求equals方法具有的特性以及实现方式
- python数据挖掘实践第一章 KNN算法,以及算法的实现
- 盘点VS2015 预览版的5个新特性
- C++11新特性应用--介绍几个新增的便利算法(stl中的heap使用,最大堆)
- 每天学习一算法系列(2)(把二元查找树转变成排序的双向链表,要求输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.)
- 程序员编程艺术(算法卷):第一章、左旋转字符串
- [ASP.NET MVC2 系列] Action要求与View本质
- 程序员编程艺术(算法卷):第一章、左旋转字符串
- 三种强大的物体识别算法——SIFT/SURF、haar特征、广义hough变换的特性对比分析
- 【算法面试】写程序输出8皇后问题的所有排列,要求使用非递归的深度优先遍历。
- 一道看上去很吓人的算法面试题:如何对n个数进行排序,要求时间复杂度O(n),空间复杂度O(1)
- 数字图像处理领域的二十四个典型算法及vc实现、第一章
- C++基础之三大特性之继承的本质(要当就当富二代,否则自己动手才能丰衣足食)
- 算法面试题——两个有序数组,将一个数组放入另一个空间很大的数组,要求合并之后依然有序,时间复杂度要求最小,不使用额外的数组。
- 实现一个挺高级的字符匹配算法: 给一串很长字符串,要求找到符合要求的字符串,例如目的串:123 1******3***2 ,12*****3 这些都要找出来