【数据结构基础】设计合理数据结构的方法论

数据处理的基本操作

其实,代码对数据的处理无非就是对输入数据进行计算,得到结果并输出的过程。而数据处理的操作过程就是找到需要处理的数据,计算结果,再把结果保存下来。这个过程可以总结为以下三个基本操作:

  • 找到要处理的数据。这就是按照某些条件进行查找
  • 把结果存到一个新的内存空间中。这就是在现有数据上进行新增
  • 把结果存到一个已使用的内存空间中。这需要先删除内存空间中的已有数据,再新增新的数据。

即便是很复杂的代码,经过拆解,它对数据的处理也只有这 3 个基本操作,分别是增、删、查。只要围绕这 3 个数据处理的操作(增、删、查)进行分析,就能得出解决问题的最优方案。常用的分析方法可以参考下面的 3 个步骤:

  • 首先,这段代码对数据进行了哪些操作?
  • 其次,这些操作中,哪个操作最影响效率,对时间复杂度的损耗最大?
  • 最后,哪种数据结构最能帮助你提高数据操作的使用效率?

这 3 个步骤构成了设计合理数据结构的方法论

查找操作

查找,就是从复杂的数据结构中,找到满足某个条件的元素。通常可从以下两个方面来对数据进行查找操作:

  • 根据元素的位置或索引来查找
    数组可以在 O(1) 的时间内完成,链表则需要顺序逐一去查找,时间复杂度就是 O(n)。
  • 根据元素的数值特征来查找
    数组和链表都只能按照顺序一个接一个地去判断元素数值是否满足条件,时间复杂度均为 O(n)。但如果借助字典这种数据类型,就可以在 O(1) 的时间复杂度内完成了。

新增操作

关于往复杂数据结构中新增数据,这里有两个可能的情况:

  • 在这个复杂数据结构的最后,新增一条数据
    此时新增一条数据后,对原数据没有产生任何影响。因此,执行的步骤是:首先,通过查找操作找到数据结构中最后一个数据的位置;接着,在这个位置之后,赋值或者插入一条新的数据即可。
  • 在这个复杂数据结构的中间某个位置,新增一条数据
    此时则会对插入元素的位置之后的元素产生影响,导致插入位置后边所有数据的位置依次加 1 。因此,执行的步骤是:首先,通过查找操作找到数据结构中待插入数据的位置;接着,把该位置之后的所有数据都往后搬移一个位置;然后,在空出来的位置上,通过新增操作,赋值或者插入一条新的数据即可。

删除操作

在复杂数据结构中删除数据有两个可能的情况:

  • 在这个复杂数据结构的最后,删除一条数据
  • 在这个复杂数据结构的中间某个位置,删除一条数据

这两个可能情况的区别在于,删除了数据之后,是否会导致原有数据结构中数据的位置顺序改变。因此,操作过程类似新增操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值