美文网首页数据结构
数据结构与算法 数组

数据结构与算法 数组

作者: 科技猿人 | 来源:发表于2020-09-28 11:48 被阅读0次

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

线性表: 线性表上的每个数据最多只有前和后两个方向。例如数组,链表、队列、栈等等。

非线性表: 非线性表中,数据之间并不是简单的前后关系 。例如 二叉树、堆、图等。

连续的内存空间和相同类型的数据 :高效的支持随机访问,低效的插入删除。

数组的时间复杂度和优化

    有序的数组插入和删除的时间复杂度为O(n),因为插入和删除操作都有可能需要移动数组元素。

    插入操作的优化:如果数组不要求有序,那么插入指定位置,可以将此位置的原先值放入数组末尾即可。比如快排算法。

    删除操作的优化:如果数组不要求有序,那么可以将删除元素标记,达到一定条件统一删除。比如JVM 标记清除垃圾回收算法,SparseArray的标记删除算法。

防止数组越界

    java语言会对数据越界进行检查并异常抛出,并非所有的语言都能像java一样,进行数组越界检查,比如c语言。

数组为什么从0来时编号

    数组从0开始编号可以在寻址的时候,更好的计算偏移量,比如第2个元素的偏移量就是1,所以为a[1]。

    大多数语言都沿用了C语言的数组下标设计(从0开始)。但也有类外,比如python。

数组和容器的选择

    java的ArrayList是对数组操作的封装容器,支持动态扩容,使用简单。但是无法存储基本类型,就会导致装箱与拆箱操作的性能损耗。

    数据操作简单且大小已知,则可直接选用数组。

    使用多维数组时,数组比容器更加直观一些。

    从开发效率上来说,直接选用容器即可,省时省力,安全高效。如果是追求性能的底层开发,那么选择数组性能更好。

相关文章

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

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

  • Hash算法

    数据结构与算法分析:大纲数据结构:数组算法:hash算法算法:排序算法Java实现 1 Hash算法? 将任意长度...

  • 数据结构:数组

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

  • Swift 实现 7 种常见的排序算法

    排序算法可以说是数据结构与算法当中最为基础的部分,针对的是数组这一数据结构。将数组中的无序数据元素通过算法整理为有...

  • 数据结构与算法学习开篇

    数据结构与算法知识图谱 20个最常用的、最基础数据结构与算法 10个数据结构:数组、链表、栈、队列、散列表、二叉树...

  • 工作消失而面试却长存的算法与数据结构

    工作消失而面试却长存的算法与数据结构: 优秀的算法和数据结构被封装到了Java的集合框架之中 数据结构考点: 数组...

  • (2)数组相关算法题目

    数组是最简单的数据结构,占据连续内存并且按顺序存储。 以下是与数组有关的算法题目。 (1)查询数组中重复数字 算法...

  • Android高级开发面试题

    一、Java 基础相关 1.1 数据结构与算法 1.1.1 常用的数据结构有哪些? 1.1.2 数组 (1).如何...

  • 数据结构与算法分析:大纲]

    00数据结构与算法分析:大纲01数据结构:数组02数据结构:链表03数据结构:栈03数据结构:队列 本系列课程主要...

  • 数据结构简要

    数据结构与算法 几种常见的数据结构 线性表(数组和链表)、栈、队列和树(二叉树) 一.线性表 1.数组 数组是...

网友评论

    本文标题:数据结构与算法 数组

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