【数据结构】如何高贵优雅地理解什么是数据结构?
一坑没填
又进新坑......
不过这个坑迟早都要进的......
——————————————下面是正文————————————————
文章开头首先了解下从百度百科上搜刮下来的一句计算机业界经典金句:
算法+数据结构=程序
ps:对于这个公式,其实个人(注意:是个人!!)更偏向于“程序=算法+数据结构”酱紫的表达,因为大部分的编程语言都是将赋值号右边的数据运算完成之后再赋值给赋值号左边的容器里,所以“程序=算法+数据结构”更能体现出这种含义~如果是“算法+数据结构=程序”给我的第一感觉是程序赋值给了算法+数据结构,编译还可能是错的hiahiahiahia~
金句之所以可以成为金句,是因为程序即使千变万化,形态各异,但终究离不开一个最关键、最基本的功能:对数据进行处理。而如何对数据进行怎样的处理呢?这就是算法需要做的事情了。所以呀,能用一个公式就将一个这么抽象的东西概括起来,成为金句确实不为过~(在座的各位大佬们可以思考一下,各位以前写过的程序里面有多少程序是可以脱离数据的?大部分都是围绕着数据进行某些处理,而这个处理就是经过算法的啦~)
说了这么多,其实还是不太懂得什么是数据结构,下面给出对我这种菜菜的人来说复杂又难懂的关于数据结构的概念:
我在大学必修课里看过还有一种说法是(具体是哪本教材我也忘记惹):数据结构是数据以某种特定的方式组合在一起。
下面给出一个例子,带各位高贵又优雅地了解数据结构是什么~
一.例子
此时,某一无名大学终于完成了最后的期末考试,全校三万多人的成绩全部汇总到了教务处一名负责成绩登录的老师手中,那么这名老师该如果将着三万个人的成绩进行一个合理的汇总呢?此时有位老师说,你可以将这写数据全部放到一个Ecel表格里面就行啦~
然后负责成绩登录的老师就微笑着照做了......
第二天,高中部的老师突然发现自己改错了一名学生的成绩,所以要求负责成绩登录的老师将这名学生的成绩进行修改
这时,负责成绩登录的老师慌了,因为自己手上只有三万个成绩,并不知道那个成绩是该名学生的,此时有位老师说,你应该将每个成绩都对应上学生的名字呀,这样才能知道成绩是谁的啦~
然后负责成绩登录的老师就微笑着照做了......
第三天,初中部的学生对自己的成绩有异议(60分),要求重新评分,评分老师重新评改后,给负责成绩登录的老师更新了一个新的成绩(59分)
这时,负责成绩登录的老师慌了,因为自己手上的三万个成绩,如果要找到其中一个人的成绩,需要从第一个开始一直往下找,结果等负责成绩登录的老师找到那个学生的名字时已经是晚上了,此时有位老师说,你可以将成绩分高中部、初中部,这样查找就更方便啦~
然后负责成绩登录的老师就微笑着照做了......
第四天,初中部的老师猛地发现自己少给了一位同学的成绩,通知负责成绩登录的老师将这名同学的成绩加上去
这时,负责成绩登录的老师慌了,因为根据Excel表格的特性,在某个位置添加一行表格虽然不是很难,但是后面的成绩就要全部往后退,那前面分类之类的又要全部进行修正,结果负责成绩登录的老师需要加班加点才能搞完。
二.总结
综上所述,对于一堆数据,这里面有一个问题,就是如何高效地进行存储和表达,而这就是数据结构的一个最根本的问题。如以上例子所述,为了能够快速地对成绩进行查找、修改、增加或者删除,需将数据进行名字分类,班级分类以及年级分类等,使得数据具有规律性、便于查找性,而这种数据间相互存在着一种或多种特定关系的,称之为数据结构。为此,类似于“树”、“图”、“队列”这种数据结构就被探索出来,每种不同的数据结构都有自己的特定的有点,有些方便存储,有些方便添加数据~
三.优点
数据结构最大的有点是可以提高解决问题的效率,如上例子所述,如果不将数据进行结构化的处理,那么当有问题需要使用到数据时,解决问题的效率就会非常低下。当然,提高解决问题的效率不单止数据结构,算法的灵活程度,代码空间的最大利用,都将影响到最后整个程序的效率,这个又是后话了~~
【数据结构】如何高贵优雅地理解什么是数据结构?相关推荐
- 如何穿婚纱才能显得更高贵优雅
怎样穿婚纱才能显得更高贵优雅?每个新娘的身材不一样,所选的婚纱类型也就不太一样,但不管你是平凡的还是相貌出众的,无论是贫穷还是富有,穿上婚纱的那一刻,都是世界上最漂亮的女人,以下就教各位准新娘们如何按 ...
- 数据结构-使用c语言 朱战立 pdf,数据结构-使用C语言朱战立.ppt
教材:教材: 朱战立编著,数据结构朱战立编著,数据结构----使用使用 C C语言(第语言(第3 3版),西安交通大版),西安交通大 学出版社,学出版社,20032003年年 数数 据据 结结 构构 ...
- 【数据结构学习之完全从零实现所有数据结构的代码编写之一】泛型编程简介
学习交流加 个人qq: 1126137994 个人微信: liu1126137994 学习交流资源分享qq群: 962535112 今天开始系统性学习数据结构内容,之前也看过大话数据结构这本书,对大多 ...
- Python数据结构与算法笔记(六):数据结构——列表和栈
数据结构介绍 存储一组有关系的数据 数据结构的分类: 树结构 图结构: 列表 列表存储与基本操作 数组: 开辟一定长度的内存,用来存储数据,里面是真实的值.32位机器上,一个整数占4字节.假设第一个数 ...
- mysql索引数据结构图解_干货:mysql索引的数据结构
索引 MySQL官方对索引的定义为:索引(Index)是帮助MySQL高效获取数据的数据结构. 我们知道,数据库查询是数据库的最主要功能之一.我们都希望查询数据的速度能尽可能的快,因此数据库系统的设计 ...
- 【数据结构与算法——C语言版】1. 数据结构与算法简介
概念 数据结构:"一组数据的存储结构" 算法:"操作数据的一组方法" 数据结构是为算法服务的,算法是要作用再特定的数据结构上的. 简言之,在编程实践中,我们可能 ...
- 数据结构之Queue | 让我们一块来学习数据结构
前面的两篇文章分别介绍了List和Stack,下面让我们一起来学习Queue 数据结构之List | 让我们一块来学习数据结构 数据结构之Stack | 让我们一块来学习数据结构 队列的概况 队列是一 ...
- 优雅のJava(四)—— 优雅的理解代理模式
文章目录 专栏导航 前言 代理 静态代理 RPC 静态代理 VS 装饰器 VS AOP 动态代理 VS 静态代理 RPC调用的例子 Why not Http? 动态代理实现AOP JDK动态代理 VS ...
- 优雅的理解 call 和 apply 的使用方法
作者在看到一篇优雅的使用 js 的各种方法解决算法的时候产生的疑问,到底什么时候使用 apply 和 call 啦? 每次看到别人用 apply 和 call 其实从以前的懵懵懂懂到现在的明白,但是自 ...
最新文章
- 网络配置命令优先级和元字符
- Eclipse(properties)插件:PropertyEditor在线安装
- Crackme006 - 全新160个CrackMe学习系列(图文|视频|注册机源码)
- 时间设置偏移秒_零偏移有源低通滤波器,第2部分
- 微软面向初学者的机器学习课程:1.2-机器学习的历史
- 深度学习(03)-- CNN学习
- 16字节 oracle md5,Oracle中的MD5加密
- Servlet传递数据方式
- 8880 e7 v2配什么主板_MATX主板配什么机箱好?曜越Tt启航者A3装机记
- python3爬虫必学Xpath,快速使用lxml.etree
- 电子版2寸照片的像素是多少
- iphone转android教程,王者荣耀ios转安卓教程攻略
- Vue开发环境搭建和vue-cli脚手架
- 【随心所记】矩阵A的行列式不等于0,是A可逆的充要条件吗?答:是这样的
- 进程调度算法FCFS和RR
- 100个python算法超详细讲解:分糖果
- shellcode免杀;CS上线;获取微信聊天记录
- C语言本身是用什么语言写的?
- 对比两个Json对象是否一致
- 项目管理电子书_Scrum实战:敏捷软件项目管理与开发【电子书】 附下载地址
热门文章
- 判断当前的浏览器是pc还是移动设备,如果是手机,就跳转到对应手机端网站
- 推荐好用的天气插件(天气网)
- YOLOV5报错:RuntimeError: result type Float can‘t be cast to the desired output type long int
- 微信小程序页面跳转时URL参数丢失问题
- 20170228找女朋友之路思考总结
- 网站不收录的具体原因-网站收录软件免费
- spring boot 解决Ajax 跨域问题
- 2021·7月微信视频号行业排行榜重磅发布
- SQL中DATEPART的应用
- 基于dx11的动作游戏踩坑之路--1