第一章 数据结构与算法

1.1 算法

1.1.1 算法的基本概念

所谓算法是指解题方案的准确而完整的描述。

对于一个问题,如果可以通过一个计算机程序,在有限的存储空间内运行有限长的时间而得到的结果,则称这个问题是算法可解的。

但算法不等于程序,也不等于计算方法。

算法的基本特征:

(1) 可行性(Effectiveness)

算法可行性包括以下两个方面:

①算法中的每一个步骤必须能够实现。

②算法执行的结果要能够达到预期的目的。  算法在执行过程中往往要受到计算工具的限制,使执行结果产生偏差。

(2)确定性(Definiteness)

算法的确定性,是指算法中的每一个步骤都必须是有明确定义的,不允许有模棱两可的解释,也不允许有多义性。

(3)有穷性(Finiteness)

算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。

算法的有穷性还应包括合理的执行时间的含义。

(4)拥有足够的情报

一个算法是否有效,还取决于为算法所提供的情报是否足够。

一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。

当算法拥有足够的情报时,次算法才是有效的,而当提供的情报不够时,算法可能无效。

综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。

原文地址:https://www.cnblogs.com/iglesias/p/11984609.html

时间: 2024-07-30 16:49:35

第一章 数据结构与算法的相关文章

第一章      数据结构和算法简介

数据是对客观事物的符号表示,在计算机科学中是指所有能输入到计算机中并能被计算机程序处理的符号的总称. 数据结构是相互之间存在一种或多种特定关系的数据元素的结合. 数据结构=数据元素+关系(结构): 数据在计算机中的表示称为数据的储结构 任何一个算法的设计取决于选定的逻辑结构,而算法的实现依赖于采用的存储结构 程序=数据结构+算法 算法是对特定问题求解步骤的一种描述 算法的5大特性: 1)  有限性,算法必须在有限的步骤之后结束 2)  确定性,算法的每一步都是确定的定义,无二义性.即在任何条件下

大数据就是这么任性第一季数据结构和算法(一线经验、权威资料、知识新鲜、实践性强、全程源码)

这门课程是针对大数据工程师和云计算工程师的基础课程,同时也是所有计算机专业人士必须掌握的一门课程. 如果不掌握数据结构和算法,你将难以掌握高效.专业的数据处理手段,更难以从容应对复杂的大数据处理场景. 请思考以下问题: 1.社交网站(如微博.facebook)中,人与人的关系是海量数据,你如何研究和处理此问题? 2.数据库的索引作用是什么?为什么利用哈希.B+树和堆表等数据结构来组织索引? 3.为什么Linux的虚拟内存管理模块,使用红黑树来处理VMA的查找? 4.为什么搜索引擎可以在毫秒级返回

程序员教程-4章-数据结构与算法

目录结构 4.1 线性结构 4.1.1 线性表 1 线性表的定义 2 线性表的存储结构 3 线性表的应用 4.1.2 栈和队列 1 栈 2 队列 4.1.3 串 1 串的定义及基本运算 4.2 数组 1 数组 2 矩阵 4.3 树与二叉树 4.3.1 树的基本概念 4.3.2二叉树 1 二叉树的性质 2 满二叉树和完全二叉树 3 二叉树的存储结构 4 二叉树的遍历 4.3.3 树和森林 1 树和森林与二叉树的相互转换 2 树和森林的遍历 4.3.4 最优二叉树 4.3.5 二叉查找树 4.4图

《大话数据结构》---第一章 数据结构绪论

数据结构是一门研究非数值计算的程序设计问题中的操作对象,以前他们之间的关系和操作等相关问题的学科. 程序设计 = 数据结构 + 算法 数据:描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合.数据元素:组成数据的.有一定意义的基本单位,在计算机中通常作为整体处理.也被称为记录.数据项:一个数据元素可以由若干个数据项组成,数据项是数据不可分割的最小单位.数据对象:是性质相同的数据元素的集合,是数据的子集.(性质相同即具有相同数量和类型的数据项)数据结构:是

第一章 数据结构概论

1.1  什么是数据结构 在数据结构中数据之间的关系主要有两种:线性关系和非线性关系(非线性关系又分为树形关系和图形关系). 如上图:每个数据单位(一条学生记录)相邻的前一个数据单位最多只能有一个(第一个没有),相邻的后一个数据单位最多只能有一个(最后一条没有).这种数据单位的集合成为数据集合,这种数据之间的关系成为线性关系(这种数据文件就是一个线性表). 我们的电脑硬盘中的目录文件结构,是一个树形结构(树形关系),这种即是非线性的: 多台电脑之间互相通信的多对多的关系,属于非线性关系中的图关系

下载大数据就是这么任性第一季数据结构和算法(一线经验、权威资料、知识新鲜、实践性强、全程源码)

java语言实现,100多课下载地址:http://pan.baidu.com/s/1dFJUbp3现200转让了,联系QQ:380539674 一.简介第1讲:什么是数据结构?第2讲:什么是算法?二.线性表第3讲:线性表(数组.链表.队列.栈)第4讲:Linux work queue及JDK线程池三.树第5讲:非线性结构.树.二叉树第6讲:平衡树.AVL树第7讲:B+树与数据库索引四.图第8讲:图的概念与存储第9讲:图的遍历第10讲:最小生成树(MST).Prim算法.Kruskal算法第11

第一章 数据结构绪论

本文章作为学习笔记,大量参考了<大话数据结构>这本书,因为没有用于商业活动,而且也算是为作者做了一个小小的宣传,作者应该不会告我侵权,哈. 数据结构的概念:是相互之间存在的一种或多种特定关系的数据元素的集合.(学了半天这个概念得知道吧!) 开场白 数据结构有什么用?如果你想走程序员的道路,如果你不想一辈子搬砖,如果你想比别人工资高百分之三十,如果你想让家人过上好日子,如果...  够现实了吧! 数据结构的起源 数据结构是程序员的炼狱,你经历了数据结构的"折磨"才能蜕变.数据

第一章——数据结构之绪论

1.1 什么是数据结构 1.2 基本概念和术语 1.3 抽象数据类型的表示与实现 1.4 算法和算法分析 1.4.1 算法 1.4.2 算法设计的要求 1.4.3 算法效率的度量 1.4.4 算法的存储 1.1 什么是数据结构 一般来说,用计算机解决一个具体的问题时,大致需要经过下列几个步骤: 1.首先要从具体问题抽象出一个适当的数学模型 2.然后设计一个解此数学模型的算法 3.最后编出程序,进行测试,调整直至得到最终解答 寻求数学模型的实质是分析问题,从中提取操作的对象,并找出这些操作对象之间

C语言数据结构——第一章 数据结构的概念

一.数据结构的基本概念 1.1-数据结构是什么? 数据结构是计算机存储和组织数据的方式.数据结构是指相互之间存在一种或多种特定关系的数据元素的集合.一般情况下,精心选择的数据结构可以带来更高的运行或者存储效率.数据结构往往同高效的检索算法和索引技术有关. 想要对大型复杂程序的构造进行系统而科学的研究,必须首先对这些程序中所包含的数据结构进行深入的研究. 数据:通常用于描述客观事物,是对客观事物的符号表示.例如:在我们平时使用的各种文字.数字和特定符号都可以称之为数据.而在计算机中,数据是指所有能