前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >数据结构(1) - 简介

数据结构(1) - 简介

作者头像
惊羽-布壳儿
发布2022-06-15 21:28:13
2480
发布2022-06-15 21:28:13
举报
文章被收录于专栏:惊羽-布壳儿

第一章 : 概念和复杂度

1. 数据结构含义

指描述一组数据时数据元素之间逻辑关系,数据在内存中存储的方式,和这组数据对外提供的标准操作api 的三个部分;

  • (1) 数据的逻辑结构,分为四种: <1> 线性关系 <2> 树形关系 <3> 图形关系 <4> 集合关系
  • (2) 数据的存储结构,分为两种: <1> 顺序存储 <2> 链式存储
  • (3) 操作API : 主要分为三种类别, <1>添加 add()/put() <2> 删除 remove()/delete() <3> 查找 get()

2. 算法含义

3. 算法的时间复杂度

1. 含义:指某一算法,在计算过程中,源操作的执行次数

  • 源操作:只程序计算过程中,嵌套最深的语句;
  • 在java中,一个方法可作为单个的算法单元,即可以做复杂度分析,优化;

2. 一些经典数据结构本身的算法中时间复杂度计算举例

(1) linkedList 时间复杂度
  • get(index) 其并没有直接维护索引,需要从两头查找(if (index < (size >> 1)) ... ...),需要遍历一半,所以时间复杂度是 O(n);
  • add(Object) 默认添加到最后一个,固其复杂度是O(1);
  • add(index,Object) 其过程是先执行和 get(index) 同样的逻辑,找到插入前的 索引为index 的元素,然后在其前面插入,需要遍历一半,所以时间复杂度是 O(n);
  • remove() 默认移除第一个,时间复杂度是 O(1);
  • remove(index) 需要执行 get(index) 同样的逻辑找到 该索引对应元素,时间复杂度是 0(n);
  • 总结 : 涉及index时候,时间复杂度是O(n),否则是O(1).
(2) ArrayList 时间复杂度 :
  • get(index) 维护了索引,直接索引指针指向查询时间复杂度是 O(1);
  • add() 默认添加到末尾,复杂度是O(1);注意 : 此处需要与LinkedList区分,虽然都是O(1),但是原因是不一样的.一个是有索引维护指针,一个是用了linkLast()方法实现;
  • add(index) 因为插入后需要维护index后面元素的索引( index=index+1),所以时间复杂度是 O(n);
  • remove(index) 通 add(index) ,固为O(n);
  • remove(Object) 需要遍历比对值,固为O(n);

参考文章 : https:www.cnblogs.com/zjss/p/5232048.html

(3) TreeMap 时间复杂度 :
  • put(k,v) ,get(key),remove(key) 全是 O(log(n)).

因为treeMap 底层是红黑树,要对数据进行操作,首先要采用二分法的规则进行查找,这时候要找到某个key,最多需要运算的次数为log2(n),记为log(n)]

参考文章 : https:blog.csdn.net/li396864285/article/details/79820808

4. 算法的空间复杂度

1.含义

指一个算法运行开始到所占内存空间的大小

2.分类

主要由三个方面决定
  • 算法本身占用空间
  • 入参大小
  • 临时辅助变量大小
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一章 : 概念和复杂度
    • 1. 数据结构含义
      • 指描述一组数据时数据元素之间逻辑关系,数据在内存中存储的方式,和这组数据对外提供的标准操作api 的三个部分;
    • 2. 算法含义
      • 3. 算法的时间复杂度
        • 1. 含义:指某一算法,在计算过程中,源操作的执行次数
        • 2. 一些经典数据结构本身的算法中时间复杂度计算举例
      • 4. 算法的空间复杂度
        • 1.含义
        • 2.分类
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档