美文网首页
day03 数据结构之 数组

day03 数据结构之 数组

作者: 爱学习的代代 | 来源:发表于2019-12-17 09:14 被阅读0次
1、什么是数组?

数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同数据类型的数据。

  • 线性表结构除数组外、栈、队列、链表也是线性表结构。非线性表有 堆、树、图等,在非线性表中数据之间不是简单的前后关系。

  • 连续的内存空间和相同的数据类型:好处是随机访问。但是坏处是插入和删除需要搬移数据显得十分低效。

2、数组的查找时间复杂度。
img

数据适合查找操作:排序好的数组二分法查找时间复杂度为O(logn); 数据支持随机访问,根据下标随机访问的时间复杂度为O(1)

3、低效的插入和删除
  1. 插入

    • 数组的末尾插入 O(1)

    • 数组的开头插入 O(n)

    • 平均情况复杂度为: (1 + 2 + .....n) /n = O(n) 按照末尾向前插入的复杂度累计

    • 如果数据无序,我们插入数据x时,可以将指定位置m的数据搬移到数组末尾,将数据x插入到位置m 此时的时间复杂度为O(1)

img
  1. 删除操作

    • 删除末尾元素: O(1)

    • 删除开头元素: O(n)

    • 平均情况复杂度: O(n)

    • 处理思路:当多个连续数据(a、b、c)需要删除时,先记录数据已经被删除,当数组内没有空间可以存储时,在触发一次真正的数据删除工作。大大减少了数据删除导致的搬移的工作

image

也是JVM的垃圾回收机制算法的核心思想。

相关文章

  • day03 数据结构之 数组

    1、什么是数组? 数组是一种线性表数据结构,它用一组连续的内存空间,来存储一组具有相同数据类型的数据。 线性表结构...

  • 重温:数据结构与算法 - 03数组

    数据结构与算法之美 - 数组 数据结构与算法之美-学习大纲 什么数组? 数组是一种 线性表 数据结构。它用一组 连...

  • # day03 【List、Set、数据结构、Collectio

    day03 【List、Set、数据结构、Collections】 主要内容 数据结构 List集合 Set集合 ...

  • 数据结构与算法

    线性数据结构 数据结构之数组[https://www.jianshu.com/p/2237c4287a25] 数据...

  • 2020-07-16

    1、看完谷粒商城31 2、恋上数据结构之动态数组

  • 数据结构:数组

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 数组 数组是一...

  • 链表

    数据结构之链表 前面我们学习了三种线性结构的数据结构,动态数组,栈和队列,但是这三种数据结构其实说到底都是数组,即...

  • 100天iOS数据结构与算法实战 Day03 - 栈的算法实战

    100天iOS数据结构与算法实战 Day03 - 栈的算法实战 Valid Parentheses 100天iOS...

  • 01.数据结构之数组篇

    文章为极客时间《数据结构与算法之美》的学习笔记。 什么是数组? 数组是一种线性表数据结构。它用一组连续的内存空间,...

  • 数据结构之数组

    程序员可能都听说过:算法 + 数据结构 = 程序。今天就来了解下数据结构的其中一种——数组吧。数组的标准定义是:一...

网友评论

      本文标题:day03 数据结构之 数组

      本文链接:https://www.haomeiwen.com/subject/bvajnctx.html