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

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

  1. 数据结构与算法

(1) 数据结构只是静态的描述了数据元素之间的关系。

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

高效的程序:恰当的数据结构 + 合适的算法。

  1. 算法的定义

(1) 算法是特定问题求解步骤的描述。

(2) 在计算机中表现为指令的有限序列。

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

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

  1. 算法的特性

(1)输入

算法具有0个或多个。

(2)输出

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

(3)有穷性

算法在有限的步骤之后会自动结束而不会无限循环。

(4)确定性

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

(5)可行性

算法的每一步都是可行的。

  1. 算法设计的准则

(1)正确性

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

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

l 算法对于边界数据和压力数据都能得到满足要求的结果(不强制要求满足)。

(2)可读性

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

(3)健壮性

算法不应该产生莫名其妙的结果。

(4)高性价比

利用最少的时间和资源得到满足要求的结果。

注意:

(1)正确性是算法最需要满足的基本的准则,但是作为计算机程序,不可能无限制的满足这条准则。

(2)算法可读性是最容易被忽视的,然而程序是写给人看的,而不是计算机。

小结

(1) 算法是为了解决实际问题而设计的。

(2) 数据结构是算法需要处理的问题载体。

(3) 数据结构与算法相辅相成。

程序 = 数据结构 + 算法

原文地址:https://www.cnblogs.com/free-1122/p/9884924.html

时间: 2024-10-12 15:07:51

数据-第3课-程序的灵魂-算法的相关文章

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

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

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

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

程序的灵魂-算法

Nikilaus Wirth提出的公式:程序=算法+数据结构 教材认为:程序=算法+数据结构+程序设计方法+语言工具和环境. 算法的概念 算法指计算机解决问题的方法. 算法分为数值算法和非数值算法. 算法的特性 有穷性 有效性 确定性 零个或多个输入 一个或多个输出 使用流程图表示算法 传统流程图 N-S流程图 三种基本结构 顺序结构 选择结构 循环结构 结构程序设计的方法 自顶向下,逐步细化,模块化设计,机构化编程 自底向上,逐步增加,模块化设计,结构化编程

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

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

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

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

大数据日知录:架构与算法

大数据丛书 大数据日知录:架构与算法(大数据领域专家力作,专注大数据架构和算法,全面梳理大数据相关技术) 张俊林 著   ISBN 978-7-121-24153-6 2014年9月出版 定价:69.00元 404页 16开 编辑推荐 这是一本心血之作,历时3年,质量上乘. 从架构与算法的角度,比较全面地分门别类梳理了大数据相关技术. 本书内容紧跟技术前沿,讲解深入浅出,适合大数据领域所有技术人员. 书中还列有作者优选的高质量文献,能为读者节省选择的时间,绝对值得一读. 内容提要 大数据是当前最

编程序模拟银行家算法

一.编程序模拟银行家算法 1)对用银行家算法来避免死锁的方法有较深入的了解,给出系统的初始状态,模拟避免死锁的动态过程. 2)银行家算法中的数据结构 (1)可利用资源向量Available.这是一个含有m个元素的数组,其中的每一个元素代表一类可利用的资源数目,其初始值是系统中所配置的该类全部可用资源的数目,其数值随该类资源的分配和回收而动态地改变.Available[j]=K,则表示系统中现有Rj类资源K个. (2)最大需求矩阵Max.这是一个n*m的矩阵,它定义了系统中n个进程中的每一个进程对

C语言-第31课 - 程序的内存布局

第31课 - 程序的内存布局 代码在可执行程序中有如下的对应关系 有初始值的放在data段,没有初始的放在bss段.静态存储区就对应了这两个区域. 我们写的函数,可移执行的代码段,放在text段. 这里并不见堆和栈的踪影,因为这只是我们的可执行文件的布局,并不会我们执行起来,进程的布局,所以是看不到堆和栈的. 文件布局在内存中的映射 高地址内存 File header 栈 .text 堆 .data .bss .data .bss .text 未映射区域 a.out a.out进程的地址空间 当

03初识程序的灵魂

原文:https://www.cnblogs.com/wanmeishenghuo/p/9484777.html 内容参考: 狄泰软件学院相关教程 程序并不是越短越好. 数据结构静态的描述了数据元素之间的关系. 高效的程序需要在数据结构的基础上设计和选择算法 高效的程序包括:恰当的数据结构和合适的算法 算法是特定问题的求解步骤,在计算机中表现为指令的有限序列 算法是独立存在的一种解决问题的方法和思想 对于算法而言,语言并不重要,重要的是思想 算法的特性: 1.输入:算法具有0个或者多个输入 2.