03初识程序的灵魂

原文:https://www.cnblogs.com/wanmeishenghuo/p/9484777.html

内容参考: 狄泰软件学院相关教程

程序并不是越短越好。

数据结构静态的描述了数据元素之间的关系。

高效的程序需要在数据结构的基础上设计和选择算法

高效的程序包括:恰当的数据结构和合适的算法

算法是特定问题的求解步骤,在计算机中表现为指令的有限序列

  算法是独立存在的一种解决问题的方法和思想

  对于算法而言,语言并不重要,重要的是思想

算法的特性:

1、输入:算法具有0个或者多个输入

2、输出:算法至少有1个或者多个输出

3、有穷性:算法在有限的步骤之后会自动结束而不会无限循环,在可接受的时间内能够自动结束

4、确定性:算法中的每一步都有确定的含义,不会出现二义性,只要输入一致,输出也是一致的

5、可行性:算法的每一步都是可行的

正确性:正确性不同于确定性

  算法对于合法数据能够得到满足要求的结果

  算法能够处理非法输入,并得到合理的结果

  算法对于边界数据和压力数据都能得到满足要求的结果

注意:

  正确性是算法最需要满足的基本的准则,但是作为计算机程序,不可能无限制的满足这条准则。因此,我们只需要关注:在用户的数据范围之内,我们能得到正确的结果就行了。对于用户不关注的数据,我们也完全不用考虑。或者将用户不关注的数据当做非法输入来处理。

算法还需要有以下的附加特性:

可读性:

  算法要方便阅读、理解和交流

健壮性:

  算法不应该产生莫名其妙的结果,给同样一组数据,在任何时候都会得到同样的结果,不能早上运行可以得到结果,晚上运行就崩溃

性价比:

  利用最少的资源得到满足要求的结果

总结:

原文地址:https://www.cnblogs.com/lh03061238/p/12500282.html

时间: 2024-08-29 22:22:34

03初识程序的灵魂的相关文章

第三课、初识程序的灵魂------------------------狄泰软件学院

一.初识程序的灵魂 1.数据结构静态描述了数据元素之间的关系 2.高效的程序需要在数据结构的基础上设计和选择算法 高效的程序需要: (1).恰当的数据结构 (2).合适的算法 3.算法是特定问题求解步骤的描述,在计算机中表现为指令的有限序列 (1).算法是独立存在的一种解决问题的方法和思想 (2).对于算法而言:语言不重要,重要的是思想 4.算法的特性 (1).输入:算法具有0个或者多个输入 (2).输出:算法至少有一个或者多个输出 (3).有穷性:算法在有限的步骤之后会自动结束而不会自动循环

【黑马程序员】————初识程序

C程序结构 1) C程序的结构:由函数组成 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”. 所以,可以说C语言程序是由函数构成的. 2)  函数的基本概念 函数名:一个程序中由无数个函数组成,每个函数都有自己的名称 调用(执行)函数:根据函数名就可以调用对应的函数,执行相应的功能 3) C程序的入口 C程序的入口是一个名字叫做main的函数,简称main函数 不管整个程序中有多少个函数,都是先执行main函数 程序开发过程

数据-第3课-程序的灵魂-算法

第3课-程序的灵魂-算法 数据结构与算法 (1) 数据结构只是静态的描述了数据元素之间的关系. (2) 高效的程序需要在数据结构的基础上设计和选择算法. 高效的程序:恰当的数据结构 + 合适的算法. 算法的定义 (1) 算法是特定问题求解步骤的描述. (2) 在计算机中表现为指令的有限序列. 算法是独立存在的一种解决问题的方法和思想. 对于算法而言,语言并不重要,重要的是思想. 算法的特性 (1)输入 算法具有0个或多个. (2)输出 算法至少有1个或多个输出. (3)有穷性 算法在有限的步骤之

C语言程序设计-第2章 算法-程序的灵魂

一个程序主要包括以下两个方面的信息: 1)对数据的描述.在程序中要指定用到哪些数据以及这些数据的类型和数据的组织形式,这就是数据结构(data structure). 2)对操作的描述.即要求计算机进行操作的步骤,也就是算法(algorithm). 算法+数据结构=程序 算法是灵魂,数据结构是加工对象,语言是工具,编程需要采用合适的方法. 为解决一个问题而采取的方法和步骤,就称为"算法". 例题1.判定2000-2500年中每一年是否为闰年,并将结果输出. 设year为被检测的年份.算

任务03——简单程序测试及 GitHub Issues 的使用

我提交的Issue 对方提交给我的Issue 对于对方提出的问题,我的理解是当程序接收到非法字符时才会重新输入,对于正常的输入(都由数字组成)如果是错误的,自然是直接生成新题目,毕竟最后还要给出正确率. 在修改自己的程序时,主要的困难就是第4个问题(如果用户输入除数字及 / 之外的其他字符(含空格.小数点等),程序是否会拒绝输入?)和第7个问题(程序是否能避免生成已经生成过的算式(包含对于加法运算来说,A+B 与 B+A 的也属于重复算式)?). 对于第4个问题,我是这么解决的:对于正确答案来说

【深入理解计算机系统03】程序的链接

第三篇:程序的链接 > 链接器的由来 高级语言出现之后,需要多人开发不同模块. 链接步骤: 1) 确定符号引用关系 确定符号的定义 2) 合并相关.o文件 同一地址空间,安排虚拟地址空间 3) 确定每个符号的地址 4) 在指令中填入新的地址 使用链接的好处: 1. 模块化 2. 提高编译效率和节省内存空间(共享库的复用) 只需要重新编译被修改的源程序文件 > 目标文件格式 分类: 1. 可重定位目标文件:.O文件,地址和数据从0开始 2. 可执行目标文件:可以直接被复制到内存中执行.这里发生了

Python学习第一章:第一次的亲密接触之初识程序(二)

上次我们讲到print(Hello Word)及变量的使用,下面我们继续: 比如我们想在程序中实现格式化输出如: 那么我们我们就要进行简单的格式化定义,一个很简单的input语法实现,案例如下: 这里的%s代表着占位符. 还有一种比较简单的语法.format同样可以实现,案例如下: 这种方法同样可以实现上述功能. 那么我们现在就可以制作一个简单的用户登录程序,案例如下: 今天因为时间关系,我先写到这里,明天继续.

第三课:程序的灵魂-算法

程序效率越高越好,并不是越短越好.在某些场合下,我们需要写出别人看不懂的算法最好,但是在一个团队开发中,算法可读性应该尽可能高. 算法的定义 算法是特定问题求解步骤的描述 在计算机中表现为指令的有限序列算法是独立存在的一种解决问题的方法和思想.对于算法而言,语言并不重要,重要的是思想 算法的特性 输入 算法具有0个或多个输入 输出 算法至少有1个或多个输出 有穷性 算法在有限的步骤之后会自动结束而不会无限循环 确定性 算法中的每一步都有确定的含义,不会出现二义性 可行性 算法的每一步都是可行的

【程序设计基础】第四章 程序的灵魂------算法

对数据的描述 在程序中要指定数据的类型和数据的组织形式,即数据结构(data structure) 对操作的描述(算法Algorithm) 程序=算法+数据结构 程序=算法+数据结构+程序设计方法+语言工具和环境 一.算法的概念 1.数值运算算法 2.非数值运算算法 二.算法的特性 1.有穷性 2.确定性 3.有零个或多个输入 4.有一个或多个输出(非必要,非数值运算的程序,只是完成一个处理,不必要将结果展示) 5.有效性 三.表示算法 自然语言 流程图(传统流程图.结构化流程图) 顺序结构.选