你的数据结构怎么学的?提起数据结构,计算机与软件,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. (二)SpringBoot启动过程的分析-环境信息准备

    -- 以下内容均基于2.1.8.RELEASE版本 由上一篇SpringBoot基本启动过程的分析可以发现在run方法内部启动SpringBoot应用时采用多个步骤来实现,本文记录启动的第二个环节:环 ...

  2. 阿里二面,面试官居然把 TCP 三次握手问的这么细致

    TCP 的三次握手和四次挥手,可以说是老生常谈的经典问题了,通常也作为各大公司常见的面试考题,具有一定的水平区分度.看似是简单的面试问题,如果你的回答不符合面试官期待的水准,有可能就直接凉凉了. 本文 ...

  3. 创建ortools的Dockerfile

    技术背景 基于已有的Docker容器镜像,去创建一个本地的镜像,有两种方法:一种是在之前的博客中提到过的,使用docker commit的方案,也就是先进去基础系统镜像内部完成所需的修改,然后comm ...

  4. (五)SpringBoot启动过程的分析-刷新ApplicationContext

    -- 以下内容均基于2.1.8.RELEASE版本 紧接着上一篇[(四)SpringBoot启动过程的分析-预处理ApplicationContext] (https://www.cnblogs.co ...

  5. Linux和Docker的Capabilities介绍及Setcap命令

    Linux和Docker的capabilities介绍 转载:https://www.cnblogs.com/charlieroro/p/10108577.html 验证环境:centos7 x86/ ...

  6. CLUSTAL W论文解读

    CLUSTAL W: improving the sensitivity of progressive multiple sequence alignment through sequence wei ...

  7. lustre文件系统环境搭建及测试

    目录 1.节点角色 2.硬件配置 3.软件版本 4.安装软件包 4.1.安装 e2fsprogs 相关包 4.2.安装 kernel 相关包 4.3.客户端安装 4.4.服务器端安装 4.5.配置 5 ...

  8. 自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04

    自动化kolla-ansible部署ubuntu20.04+openstack-victoria之基础配置-04 欢迎加QQ群:1026880196 进行交流学习 近期我发现网上有人转载或者复制原创博 ...

  9. Trees on the level UVA - 122

    Trees are fundamental in many branches of computer science (Pun definitely intended). Current stateo ...

  10. Jsoup-基于Java实现网络爬虫-爬取笔趣阁小说

    注意!仅供学习交流使用,请勿用在歪门邪道的地方!技术只是工具!关键在于用途! 今天接触了一款有意思的框架,作用是网络爬虫,他可以像操作JS一样对网页内容进行提取 初体验Jsoup <!-- Ma ...