大话数据结构 绪论及算法

程序设计 = 数据结构 + 算法

数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。

数据元素:是组成数据的、有一定意义的基本单位,在计算机中通常作为整体处理。也被称为记录。

数据项:一个数据元素可以由若干个数据项组成。数据项是数据不可分割的最小单位。

数据对象:是性质相同的数据元素的集合,是数据的子集。

数据结构:是相互之间存在一种或多种特定关系的数据元素的集合。

逻辑结构:是指数据对象中数据元素之间的相互关系。

1)集合结构:集合结构中的数据元素除了同属于一个集合外,它们之间没有其他关系。

2)线性结构:线性结构中的数据元素之间是一对一的关系。

3)树形结构:树形结构中的数据元素之间存在一种一对多的层次关系。

4)图形结构:图形结构的数据元素是多对多的关系。

物理结构(存储结构):是指数据的逻辑结构在计算机中的存储形式。

1)顺序存储结构:是把数据元素存放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。

2)链式存储结构:是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。

数据类型:是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。

1)原子类型:是不可以再分解的基本类型,包括整型、实型、字符型等。

2)结构类型:由若干个类型组合而成,是可以再分解的。例如,整型数组是由若干整型数据组成的。

抽象数据类型:是指一个数学模型及定义在该模型上的一组操作。

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

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

1)输入:算法具有零个或多个输入。

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

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

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

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

算法设计的要求

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

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

3)健壮性:当输入数据不合法时,算法也能做出相关处理,而不是产生异常或莫名其妙的结果。

4)时间效率高和存储量低:设计的算法应该尽量满足时间效率高和存储量低的需求。

算法的时间复杂度:

在进行算法分析时,语句总的执行次数T(n)是关于问题规模n的函数,进而分析T(n)随n的变化情况并确定T(n)的数量级。算法的时间复杂度,也就是算法的时间量度,记作:T(n)=O(f(n))。它表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐近时间复杂度,简称为时间复杂度。其中f(n)是问题规模n的某个函数。

一般情况下,随着n的增大,T(n)增长最慢的算法称为最优算法。

一般在没有特殊说明的情况下,都是指最坏时间复杂度。

算法的空间复杂度通过计算算法所需的存储空间实现,算法空间复杂度的计算公式记作:S(n)=O(f(n)),其中,n为问题的规模,f(n)为语句关于n所占存储空间的函数。

原文地址:https://www.cnblogs.com/didada/p/9631810.html

时间: 2024-10-13 11:30:29

大话数据结构 绪论及算法的相关文章

Learning Data Structure_1_数据结构绪论和算法

今天回到了杭电,在戴荣学弟的帮助下暂住他的寝室,解决了基本的生活问题,可以多点时间精力开始学习阅读刘志老师给的暑假要求掌握的书籍和知识了. 首先是数据结构,手头上主要是两本教材,一本是严蔚敏等主编的<数据结构(c语言版)>,另一本是程杰编的<大话数据结构>,前者经典严谨,后者通俗有趣,应该是不错的选择.以下是简要的学习内容和笔记. 数据结构绪论 1.数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科. 2.掌握以下概念和术语:数据.数据

《大话数据结构》笔记(1)--数据结构绪论,算法

第一章 数据结构绪论 基本概念和术语 数据 数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合. 换言之,数据就是符号,而且具备两个前提: 1. 可以输入到计算机中 2. 能被计算机程序处理 数据元素 数据元素是组成数据的.有一定意义的基本单位,在计算机中通常作为整体处理.也被称为记录. 数据项 一个数据元素可以由若干个数据项组成. 数据项是数据不可分割的最小单位. 数据对象 数据对象是性质相同的数据元素的集合,是数据的子集. 数据结构 数据结构是

大话数据结构之一(绪论、算法)

数据结构绪论 数据结构是相互之间存在一种或多种特定关系的数据元素的集合 程序设计=数据结构+算法 数据结构事实上就是一门研究非数值计算的程序设计问题的操作对象,以及它们之间的关系和操作等相关问题的学科. 数据是描述客观事件的符号,是计算机中可以操作的对象,是能被计算机识别,并输入能计算机处理的符号集合,也就是说数据必须具备两个前提: 可以输入到计算机中 能被计算机程序处理 数据 数据元素是组成数据的.有一定意义的基本单位,在计算机中通常作为整体处理,也被称为记录 数据项:一个数据元素可以由若干个

图的基础算法(大话数据结构笔记)

概述 线性表的每个元素有线性关系,每个数据元素只有一个直接前去和一个直接后继.树的数据元素之间有着明细那的层次关系,并且每层上的数据元素可能和下一层中多个元素相关,但只能和上一层中一个元素相关.这和一对父母可以有很多孩子,但每个孩子却只能有一对父母是一个道理.可现实中,人与人之间关系复杂,不是简单一对一,一对多的关系.这种复杂关系更适合用图来表示.在图结构中,节点之间的关系可以是任意的,图中任意两个数据元素之间都可能相关.如下图所示:无向边:Edge (vi,vj)有向边:也叫弧,Arc. <v

KMP算法学习记录----《大话数据结构》部分匹配表学习部分

如需转载,请保留本文链接. 首先先将<大话数据结构>关于KMP算法的讲解部分贴上,本文不提供下载链接,也不会将电子书作为资料留百度云,需要电子书的各位,请自行寻找电子版. 关于上述的KMP算法种的next数组的推导部分,一直不是很明白,本贴是关于上述部分的学习推导记录. 以书中字符串为例: 1|2|3|4|5|6|7|8|9| a|b|a|b|a|a|a|b|a| 0|1|1|2|3|4|2|2|3| string T = "ababaaaba"; int i = 1;j

《大话数据结构》 第一讲.数据结构绪论 (读书笔记)

大话数据结构 导读笔记 第一讲: 一.基本概念和术语 (1)数据元素:是组成数据的.有一定意义的基本单位,在计算机中通常作为整体处理.也被称为记录.   比如,在人类中,什么是数据元素呀?当然是人了. (2)数据项:一个数据元素可以由若干个数据项组成.   比如人这样的数据元素,可以有眼.耳.鼻.嘴.手.脚这些数据项,也可以有姓名.年龄.性别.出生地址.联系电话等数据项,具体有哪些数据项,要视你做的系统来决定. 数据项是数据不可分割的最小单位.在数据结构这门课程中,我们把数据项定义为最小单位,是

数据结构绪论

一.数据结构定义介绍 1.数据结构:相互之间存在一种或多种特定关系的数据元素的集合. 2.数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及他们之间的关系和操作等相关问题的学科. 程序设计 = 数据结构 + 算法 二.基本概念和术语 1.数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合. 注:声音.视频.图像等也是数据,可以通过编码输入到计算机中. 2.数据元素:是数据的基本单位,在计算机程序中通常作为整体进行处理.也被成为记录. 3

《大话数据结构》学习笔记 排序

排序的严格定义:  假设含有n个记录的序列为{r1,r2,......,rn},对应的关键字分别为{k1,k2......,kn},需确定1,2,......,n的一种排列p1,p2,......,pn,使其相应的关键字 满足Kp1<=Kp2<=......Kpn关系,即使得序列成为一个按关键字有序的序列(rpq,rp2,......rpn),此操作称为排序.  排序的稳定性:内排序与外排序(根据记录是否全部放置在内存中). 根据排序中的主要操作,可以分为插入排序类(直接插入排序->希尔

【大话数据结构】 部分读书笔记

章节 笔记 1.数据结构绪论 数据结构:相互之间存在一种或多种特定关系的数据元素集合. 数据:是描述客观事物的符号,计算机可以操作的对象,符号集合. 数据元素:是组成数据的.有一定意义的基本单位,也称为记录.如人类中的人. 数据项:一个数据元素可以由若干个数据项组成.如人的眼.耳.是不可分割的最小单位. 数据对象:是性质相同的数据元素的集合,是数据的子集.如人都有姓名等相同的数据项. 逻辑结构:是指数据对象中数据元素之间的相互关系.含集合(无关联).线性(一对一).树形(一对多层次关系).图形(