你的数据结构怎么学的?提起数据结构,计算机与软件,it行业内无人不知,无人不晓。但是,当你真正的去通过数据结构与算法内容去实践内容时,真的能联系起来吗?那肯定的

不管是考研还是做项目,数据结构都是必学的,基本所有人都学过数据结构,学过算法。说起数据结构,那不就是,代码的结构安排吗?说起算法,那不就是实现目标的最简单的代码实现吗?好像所有人都学过二分查询,递归,快排,说起来,好像懂得挺多的,可是实际用的时候,代码不会敲,这个咳咳,可能不是很重要,但是提起来你了解,但是,一旦不说,你就根本想不起来用,那你的数据结构与算法就是这么学习的?说起来你知道一个for循坏的时间复杂度为O(n),两个就是O(n^2),一旦给你稍微复杂一点的,你会算时间复杂度嘛?嗯。。。我会。。你会你试试!然后带来的就是这个。。。。。。是吧。。。。我也是n遍来学数据结构,可能后面不会,前面又忘,那今天就在来看看,了解一下数据结构与算法的最基本的内容!

  

本次内容:

    第一节:了解数据结构(基本概念)

一:数据结构(基本概念)

    1.1  数据结构

    你说说,你说说?数据结构是什么?哼,不就是数据结构,数据结构不就是 数据结构,说的好像也没错。好像你问起来,好多人都不一定能回答的这么顺畅,可能等待的就是鸦雀无声,那么,在这就说一下数据结构是啥,用点很正的语言。数据结构:相互之间存在一种或多种特定关系的数据元素的集合。这下知道了什么数据结构,小弟在这打赌,如果就看这一下,我赌明天早上你必忘!

    1.2  数据结构的起源

    怎么说呢,我感觉当我学这门课到一定程度时,我才会有兴趣了解它的起源,现在,我都不会这里弟弟就不写出来了,有兴趣的哥哥姐姐自己查呗。

    1.3   基本概念等

    这里呢,再说一些基本的概念什么的,肯定不是我自己写的,肯定根据理解写出来的。

      1.3.1 数据

      数据是什么?数据就是表述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合总结来说就是两点把,一个是代表着实体事务,一个就是可以被计算机识别处理。

      1.3.2 数据元素

       数据元素就是组成数据的,有一定的意义的基本单位,在计算机中通常作为整体处理。也被称为记录。咋说呢,可能这种话听不明白,换个简单的,人类的数据元素,人。牲口呢,肯定就是鸡鸭鱼等了。

       1.3.3 数据项

      一个数据元素可以由多个数据项来组成,例如:人就是可由眼睛鼻子嘴等等组成;数据项是不可分割的最小单位。但是我们开始分析数据结构的时候,都是通过进行分析其数据元素,着眼于个体,而不是眼鼻嘴等器官

      1.3.4 数据对象

      数据对象就是:数据元素的集合,当然需要性质相同,是数据的子集。在平常我们都将数据对象简称为数据,不要问我为什么,问就是我也不知道!

      1.3.5 数据结构

      终于到了最重要的一个了,数据结构,数据就是指标志着事务的符号,结构就是各个部分的相互组成,搭配,排列方式等,每个人与每个人都有联系,都存在着特定的关系,而这种非独立的关系,就被称为结构。因此,数据结构就是:相互之间存在一种或者多种特定关系的数据元素的集合

        我画的图(自己的总结把):

      

    1.4 逻辑结构与物理结构

      1.4.1 逻辑结构

        逻辑结构:是指数据元素之间的关系;可以分为以下的四种结构;

        1.集合结构:集合结构种的数据元素除了同属于一个集合以外,其他没什么关系,各个元素之间平等。

        2.线性结构:线性结构中的元素为一对一

        3.树形结构:存在一对多的关系

        4.图形结构:存在多对多的关系

      

      

      1.4.2 物理结构:指的是在计算机存储的形式。(数据的存储方式有:顺序存储与链式存储)

        1.顺序存储

          顺序存储:就是把数据元素放在地址连续的存储单元种,其逻辑结构与物理顺序一样,其实就是排队存,一个接一个。

        2.链式存储

          链式存储:把数据放在任意的单元格内存储,单元格可以连续,也可以不连续。

        

        链式存储与顺序存储各有各自的优点,通过后面的学习,就可以清楚认知,后面我会写更细的我自己理解,这里先说一个简单的定义。相比大部分都已经学习过了。

  

      1.5 抽象数据类型

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

        抽象:以实物的特征,抽取具有普遍性的本质,抽出问题特征,而并非一个具体的细节。

        抽象数据类型:是指一个数字模型及定义在该模型的一系列操作

        简单而言就是虚拟操作,在非真实的电脑上,进行一系列的类似于真实的操作(本人理解)。

      

      

        总之内容也不多,也不算太难,第一章到此结束,你看,你知道多少?我估计大部分新手,确实学了数据结构,但是并不是能永久记忆,这个内容就是为了更好的利于我们学习知识,总结知识,内容有来自《大话数据结构》并非纯粹我自己的语言,但是也有我自己的理解,我们一同学习!!加油!

        

        

  

发现数据结构与算法之美的第n次重新学习 ——— 初遇数据结构与算法(了解)的更多相关文章

  1. JavaScript 数据结构与算法之美 - 线性表(数组、栈、队列、链表)

    前言 基础知识就像是一座大楼的地基,它决定了我们的技术高度. 我们应该多掌握一些可移值的技术或者再过十几年应该都不会过时的技术,数据结构与算法就是其中之一. 栈.队列.链表.堆 是数据结构与算法中的基 ...

  2. JavaScript 数据结构与算法之美 - 十大经典排序算法汇总(图文并茂)

    1. 前言 算法为王. 想学好前端,先练好内功,内功不行,就算招式练的再花哨,终究成不了高手:只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 ...

  3. JavaScript 数据结构与算法之美 - 归并排序、快速排序、希尔排序、堆排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

  4. 《数据结构与算法之美》 <05>链表(下):如何轻松写出正确的链表代码?

    想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代 ...

  5. 《数据结构与算法之美》 <04>链表(上):如何实现LRU缓存淘汰算法?

    今天我们来聊聊“链表(Linked list)”这个数据结构.学习链表有什么用呢?为了回答这个问题,我们先来讨论一个经典的链表应用场景,那就是 LRU 缓存淘汰算法. 缓存是一种提高数据读取性能的技术 ...

  6. 《数据结构与算法之美》 <01>复杂度分析(上):如何分析、统计算法的执行效率和资源消耗?

    我们都知道,数据结构和算法本身解决的是“快”和“省”的问题,即如何让代码运行得更快,如何让代码更省存储空间.所以,执行效率是算法一个非常重要的考量指标. 那如何来衡量你编写的算法代码的执行效率呢?这里 ...

  7. 如何用快排思想在O(n)内查找第K大元素--极客时间王争《数据结构和算法之美》

    前言 半年前在极客时间订阅了王争的<数据结构和算法之美>,现在决定认真去看看.看到如何用快排思想在O(n)内查找第K大元素这一章节时发现王争对归并和快排的理解非常透彻,讲得也非常好,所以想 ...

  8. JavaScript 数据结构与算法之美 - 栈内存与堆内存 、浅拷贝与深拷贝

    前言 想写好前端,先练好内功. 栈内存与堆内存 .浅拷贝与深拷贝,可以说是前端程序员的内功,要知其然,知其所以然. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScri ...

  9. JavaScript 数据结构与算法之美 - 冒泡排序、插入排序、选择排序

    1. 前言 算法为王. 想学好前端,先练好内功,只有内功深厚者,前端之路才会走得更远. 笔者写的 JavaScript 数据结构与算法之美 系列用的语言是 JavaScript ,旨在入门数据结构与算 ...

随机推荐

  1. 使用KeepAlived来实现高可用的DR模型

    环境 VMware 16 CentOS8 相关软件 keepalived ipvsadm httpd 准备工作 准备四个节点,如上图,Node01 ~ Node04, 本文默认你会在VMWare上安装 ...

  2. Fundamentals of Power Electronics 目录

    Fundamentals of Power Electronics Translated By Siwei Yang (前六章翻译自Edition 2,后面部分翻译自Edition 3) Part I ...

  3. 带你全面认识CMMI V2.0(四)——管理 赋能

    风险和机会管理(PSK)包括:识别威胁和机会:评估其发生和影响的可能性:减轻潜在威胁:利用潜在机会目的:识别,记录,分析和管理潜在的风险或机会.价值:减轻不利影响或利用积极影响来增加实现目标的可能性. ...

  4. Vulkan移植GpuImage(三)从A到C的滤镜

    前面移植了几个比较复杂的效果后,算是确认了复杂滤镜不会对框架造成比较大的改动,开始从头移植,现已把A到C的所有滤镜用vulkan的ComputeShader实现了,讲一些其中实现的过程. Averag ...

  5. leetcode 刷题(数组篇)11题 盛最多水的容器(双指针)

    题目描述 给你 n 个非负整数 a1,a2,...,an,每个数代表坐标中的一个点 (i, ai) .在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) .找出其 ...

  6. 火爆外网的 DGS 框架使用

    Netflix 已开放其 Domain Graph Service(DGS)框架的源代码 ,该框架是为了方便整合 GraphQL 使用,用于简化 GraphQL 的实现. GraphQL 主要是作用于 ...

  7. JDBC_08_解决SQL注入问题 (登录和注册)

    解决SQL注入问题 只要用户提供的信息不参与sql语句的编译过程,那么尽管用户输入的信息中含有sql关键字那么也不会起作用了 要想使用户提供信息不参与sql语句的编译过程,那么必须使用 java.sq ...

  8. 【主从复制】MySQL主从复制的原理

    1. 存在几个线程: 主库一个线程,从库两个线程 2.主库生成一个log dump线程,和从库IO线程交互 3.IO线程请求主库binlog,写入到中继日志relay log 4.SQL线程读取中继日 ...

  9. ajax异步登录

    以下是ajax代码示例: HTML <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " ...

  10. SpringCloud之Ribbon负载均衡策略

    Spring Cloud 微服务架构学习记录与示例 一.认识Ribbon 首先咱们需要认识下负载均衡,一般分为服务器端负载和客户端负载均衡. 服务器端负载均衡:比如Nginx.F5,请求达到服务器后由 ...