当前位置: 首页 > article >正文

数据结构--初步了解(抽象分级)

 本文探讨了数据结构和算法在常规开发中的重要性。数据结构如ArrayList用于构建无穷级菜单,线性结构则常用于好友管理。理解数据的逻辑和存储结构、算法的正确性、鲁棒性、简单性、抽象分级和高效性是关键。算法的描述方式包括汉字、流程图、伪代码和实际实现,并通过时间复杂度和空间复杂度评估其效率。在实际应用中,应关注数据结构的合理使用和算法的设计优化。
摘要由CSDN通过智能技术生成
展开 
现状:现在毕业以及两年半了,感觉常规开发上面很少用过数据结构以及配套算法。
一般一个程序=数据结构+算法;
目前常规开发,也都是业务代码开发、以及框架自带的配置或者第三方插件直接使用,但是数据结构也是常用的,但是用的很low;

数据结构:可以理解为,对抽象数据定义为一个合理的结构体进行封装,存储在计算机中,方便后续算法使用或者业务代码使用。

例如:
1.实现无穷级菜单,
你能知道使用arraylist进行存储数据,但是呢,你想实现无穷级菜单,就要额外处理了,需要一点算法:
当然肯定又常规的递归,进行初始的无穷级菜单构建数据结构,后续在某个节点上,增加无穷级菜单、以及修改,肯定就涉及到一些基本功了(也可以吧这个理解为算法,就是怎么样合理的处理这个数据结构,让我们实现这个程序或者业务场景)
2.常规微信添加好友,
一般也就是直接备注姓名,不想使用搜索的话,是不是一个个进行查找呢,没加备注的话,是不是更加麻烦,一个个找;
另一种思路就是,将常规好友进行分组备注,例如按照公司分组、好友关系等分组,也是方便查找;
这两种方式是不是也是分别用了,线性和数的结构来存储好友信息,类似的概念;

关于数据
常规了解四点:
1.数据的逻辑结构,用什么样的结构来定义数据的关系;
2.数据的存储结构,这个结构体怎么存储到计算机中;
3.算法,基于这个机构的数据,例如如何实现插入、删除、查找等操作,核心就是怎么处理数据;
4.常规数据处理技术:查找、排序、索引等;
总之:
数据逻辑的四种结构:集合、线性表、树、图,每一种还可以细分,独立不开存储和遍历算法;
数据存储的两种结构:顺序存储、链接存储(会用到指针);索引存储;哈希存储

关于算法
一:也可以理解为程序,要有以下几个特点;
1.正确性:面对任何合法的输入都能给出,正确的结果;
2.鲁棒性:也称为健壮性,对于错误的输入,算法能够识别并处理,而不是产生错误动作或者陷入瘫痪,要有对非法输入的抵抗性;
3.简单性:简单容易理解和实现。
4.抽象分级:算法一旦创建,必须由人进行阅读、理解和修改。如果算法涉及太多,人就会糊涂,要采用抽象分级来组织算法表达的思想,可以理解为吧算法分解为多个模块,模块互调,做好备注、描述功能即可;
5.高效性;
时间效率:运行速度;
空间效率:存储空间大小,也要考虑到GC;
二:算法有四种描述方式:
1.汉字描述,写除步骤
2.流程图
3.伪代码
4.真实实现
三:评价算法的优劣
1.事先估算法:他是对算法所消耗资源的估算。
2.时间复杂度:判断算法的时间代价,o(1)最合适;
3.空间复杂度:算法执行过程中,需要的辅助空间的数量;
4.最好、最坏、平均情况:以平均为主,最坏为下限;知道其时间开销


http://www.kler.cn/a/286781.html

相关文章:

  • Harmony Next 支持创建分身
  • Scrapy之一个item包含多级页面的处理方案
  • uiautomator2教程
  • Linux网络 序列化与反序列化
  • Git实用指南:忽略文件、命令别名、版本控制、撤销修改与标签管理
  • 炸场硅谷,大模型“蒸汽机”迎来“瓦特时刻”
  • 【专题】2024年中国AI人工智能基础数据服务研究报告合集PDF分享(附原数据表)
  • 架构设计(13)安全架构设计理论
  • QT +ffmpeg-4.2.2-win64-shared 拉取 RTMP/http-flv 流播放
  • 模型 冯/诺依曼思维模型
  • 实习的一点回顾单元测试
  • 网络爬虫调研报告
  • Force Yc 第九引导公告页HTML源码
  • Codeforces Round 969 (Div. 2)
  • ffplay源码分析(五)包缓存队列和帧缓存队列
  • 【微服务】springboot 自定义注解+反射+aop实现动态修改请求参数
  • WebAssembly技术实践
  • 通义说【线性代数】什么是线性
  • Git 基础使用--权限管理--用户和用户组授权
  • 【计算机网络】浏览器输入访问某网址时,后台流程是什么
  • 本地搭建和运行Whisper语音识别模型小记
  • 数分基础(04)EXCEL常用快捷键-中等规模数据不用拼命滚轮
  • 六、Selenium操作指南(三)
  • 深度学习速通系列:贝叶思和SVM
  • Python函数(12时间处理正则表达式)
  • Redis三种集群模式:主从模式、哨兵模式和Cluster模式