原文:https://www.cnblogs.com/crystaltu/p/6408484.html

学习任何一种技术都应该先清楚它的基本概念,这是学习任何知识的起点!本文是讲述数据结构的基本概念,适合对数据结构已经有一定基础的程序员,更是适合想要学习数据结构的code一族!让我们开始PHP数据结构的篇章吧!

一、基本概念

(一)编写解决实际问题的程序的一般过程:

1.如何用数据形式描述问题,即将问题抽象为一个数学模型;

2.问题所涉及到的数据量的大小及数据之间的关系;

3.如何在计算机中储存数据及体现数据之间的关系;

4.处理数据时需要对数据执行的操作;

5.编写的程序的性能是否良好。

(二)数据(Data) :

是客观事物的符号表示,在计算机科学中指的是所有能输入到计算机中并被计算机程序处理的符号的总称。

(三)数据元素(Data Element) :是数据的基本单位,在程序中通常作为一个整体来进行考虑和处理。一个数据元素可由若干个数据项(Data Item)组成。数据项是数据的不可分割的最小单位。数据项是对客观事物某一方面特性的数据描述。

(四)数据对象(Data Object):是性质相同的数据元素的集合,是数据的一个子集。如字符集合C={‘A’,’B’,’C,…} 。

(五)数据结构:相互之间具有一定联系的数据元素的集合。

(六)数据的逻辑结构:数据元素之间的相互关系称为逻辑结构。

(七)数据的逻辑结构有四种基本类型:

1.集合:结构中数据元素之间除了“属于同一个集合”外,再也没有其他的关系;

2.线性结构:结构中的数据元素存在一对一的关系;

3.树形结构:结构中的数据元素存在一对多的关系;

4.网状或者图状结构:结构中的数据元素存在多对多的关系;

(八)数据结构的储存方式:由数据元素之间的关系在计算机中有两种不同的表示方法顺序表示和非顺序表示,从则导出两种储存方式,顺序储存结构和链式储存结构

1.顺序存储结构:用数据元素在存储器中的相对位置来表示数据元素之间的逻辑结构(关系)。

2.链式存储结构:在每一个数据元素中增加一个存放另一个元素地址的指针(pointer ),用该指针来表示数据元素之间的逻辑结构(关系)
顺序结构:数据元素存放的地址是连续的;
链式结构:数据元素存放的地址是否连续没有要求。
数据的逻辑结构和物理结构是密不可分的两个方面,一个算法的设计取决于所选定的逻辑结构,而算法的实现依赖于所采用的存储结构

(九)数据操作: 对数据要进行的运算

(十)数据类型(Data Type):指的是一个值的集合和定义在该值集上的一组操作的总称。

(十一)算法(Algorithm):是对特定问题求解方法(步骤)的一种描述,是指令的有限序列,其中每一条指令表示一个或多个操作。

(十二)算法具有以下五个特性

1.有穷性: 一个算法必须总是在执行有穷步之后结束,且每一步都在有穷时间内完成。

2.确定性:算法中每一条指令必须有确切的含义。不存在二义性。且算法只有一个入口和一个出口。

3.可行性: 一个算法是能行的。即算法描述的操作都可以通过已经实现的基本运算执行有限次来实现。

4.输入: 一个算法有零个或多个输入,这些输入取自于某个特定的对象集合。

5.输出: 一个算法有一个或多个输出,这些输出是同输入有着某些特定关系的量。

(十三)算法和程序是两个不同的概念:一个计算机程序是对一个算法使用某种程序设计语言的具体实现。算法必须可终止意味着不是所有的计算机程序都是算法。

(十四)评价一个好的算法有以下几个标准

1.正确性(Correctness ): 算法应满足具体问题的需求。

2.可读性(Readability): 算法应容易供人阅读和交流。可读性好的算法有助于对算法的理解和修改。

3.健壮性(Robustness): 算法应具有容错处理。当输入非法或错误数据时,算法应能适当地作出反应或进行处理,而不会产生莫名其妙的输出结果。

4.通用性(Generality): 算法应具有一般性 ,即算法的处理结果对于一般的数据集合都成立。

5.效率与存储量需求: 效率指的是算法执行的时间;存储量需求指算法执行过程中所需要的最大存储空间。一般地,这两者与问题的规模有关。

(十五)算法的时间复杂度:算法中基本操作重复执行的次数是问题规模n的某个函数,其时间量度记作   T(n)=O(f(n)),称作算法的渐近时间复杂度(Asymptotic Time complexity),简称时间复杂度。

(十六)算法的空间复杂度:是指算法编写成程序后,在计算机中运行时所需存储空间大小的度量。记作:   S(n)=O(f(n)),其中n为问题规模

转载于:https://www.cnblogs.com/ivy-zheng/p/10926992.html

PHP数据结构基本概念相关推荐

  1. 【数据结构总结】第一章:数据结构基本概念

    [数据结构总结]第一章:数据结构基本概念 本文主要是以思维导图的形式概括数据结构第一章的精华内容,基本不会用到文字性的内容,目的是为了给大家梳理每个重要的知识点的相关概念,方便大家在复盘的时候快速阅读 ...

  2. Python数据结构与算法(三)--数据结构的概念

    上一章我们看Python内置的模块可以测试代码的时间,有的代码执行时间短有的执行时间长,就是说效率不一样. 如果上面不明显的话,大家看下面两个方法.append() 和 insert(0) impor ...

  3. 数据结构 (一) ----- 数据结构基本概念基于数组实现线性表

    相关文章: <数据结构 (一) ----- 数据结构基本概念&基于数组实现线性表> 文章目录 数据结构基本概念 一.逻辑结构 二.存储结构 三.数据结构定义 四.数据结构的通用的几 ...

  4. 数据结构 基本概念(数据项--数据元素--数据对象-数据类型-抽象数据类型)

    //数据结构基本概念 #include<iostream> using namespace std;/* 数据 – 程序的操作对象,用于描述客观事物 数据的特点: 可以输入到计算机 可以被 ...

  5. 【向题看齐】408之数据结构DS概念记忆总结

    408之数据结构DS概念记忆总结 1.线性表 2.栈和队列 3.串 4.树 4.1.树的性质 4.2.二叉树的性质 4.3.满二叉树的性质 4.4.线索二叉树的性质 4.5.二叉排序树的性质 4.6. ...

  6. C语言数据结构-第一讲-数据结构基础概念-电大

    第一讲数据结构基础概念内容简介 数据是表征客观事物的可记录可识别的符号集合.数据是信息处理的核心基础. 本讲主要介绍了与数据结构有关的基本概念术语: l       数据 l       数据元素 l ...

  7. 考研数据结构の基础概念

    考研数据结构の基础概念 第一章 绪论 第二章 线性表 第三章 栈与队列 第四章 串 第五章 矩阵与广义表 第六章 树 第七章 图 第八章 排序 第九章 查找 第一章 绪论 1.数据:是对客观事物的符号 ...

  8. 数据结构---基础概念

    一.内容要点 (一)什么是数据结构 1.用计算机解决问题需要几个步骤: 从实际问题抽象出数学模型: 设计解决此数学问题的算法: 编译.调试程序,直至得到最终答案. 2.问题的类型 例1:图书管理系统. ...

  9. 数据结构系统学习(1)数据类型和数据结构的概念

    目录 1.有关数据结构的基本概念和术语 (1)数据 (2)数据元素 (3)数据对象 (4)数据类型 (5)抽象数据结构 2.数据结构   在现代计算机系统中,计算机更多地用于控制,管理及数据处理等非数 ...

最新文章

  1. 扎克伯格、张一鸣、宿华都公开道歉,AI算法不灵了吗?
  2. WMS(一):Window的添加过程
  3. 全国计算机技术与软件专业技术资格(水平)考试徽标
  4. 信息学奥赛一本通(1052:计算邮资)
  5. 树形结构 —— 树与二叉树 —— 树的直径
  6. 使用SQL Server数据库指标预测应用程序问题
  7. [下载]活学活用DataGrid控件与ADO.NET
  8. 摄影测量学——解析法相对定向
  9. Python中os.listdir和os.walk的区别
  10. 开启智慧新生活 新余市智慧城市建设全省率先
  11. 采用腾讯云直播断流续播相关问题
  12. 广东电信最新DNS更新了
  13. 希腊神话中的爱情悲剧
  14. /etc/shadow文件是什么?
  15. 复杂性应业务抽象本质——系统化多维度思考(如何让抽象更上一层楼)
  16. 计算机系统引导失败怎么办,电脑开机出现引导失败怎么办 是什么原因造成的...
  17. 小米 微信:无法连接服务器,微信出现大规模故障 多地无法登录
  18. IBM PC机是一台什么计算机,PC机是什么类型的计算机
  19. 基于Python的二次元音乐可视化分析ACG音乐发展
  20. 用vue-pdf包实现pdf文件预览,支持分页

热门文章

  1. 关于解决Android studio:The emulator process for AVD Pixel_4_XL_API_30 has terminated 以及改变AVD存放位置
  2. Docker 容器文件拷贝及目录挂载
  3. 4G边缘计算工业路由器与传统4G工业路由器的区别
  4. 苹果最新框架教程之 ProximityReader是什么
  5. 红外线人体感应灯arduino_Arduino 各种模块篇 人体红外感应模块 proximity sensor
  6. c++头文件防卫式声明
  7. The artifact org.apache.commons:commons-io:jar:1.3.2 has been relocated to commons-io:commons-io:jar
  8. linux怎么越狱苹果手机,如何在苹果手机使用unc0ver越狱
  9. 详解C语言中的#define、#undef、#indef、#ifndef、#else、#endif,#if,#elif
  10. SVN提交报错 Attempted to lock an already-locked dir