IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 数据结构系列 线性表 数组Array详解,以及优缺点总结!附加LeetCode实战练习题 -> 正文阅读

[数据结构与算法]数据结构系列 线性表 数组Array详解,以及优缺点总结!附加LeetCode实战练习题

什么是数组?

?“数组是指有序的元素序列。如果将有限个类型相同的变量的集合命名,那么这个名称就是数组名,而组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。”
?“数组是可以在内存中连续存储多个同种类型元素的结构,在内存中的分配也是连续的,数组中的元素通过数组下标进行访问,数组下标从0开始。”

优缺点

【优点】

  1. 按照索引查询元素速度快;
  2. 能存储大量数据;
  3. 按照索引遍历数组方便;

数组中数据存储在内存中是连续的,并且同一数组中数据的大小也相同,更方便遍历

  1. 数组定义简单,而且访问很方便;
  2. 可以随机访问其中的元素。

优点总结

首先数组中存储的都是同种数据类型的数据,即表示占用的内存空间相同,并且数组中所有的数据都直接存放在内存中,并且连续,可以直接进行访问内存中的指定区域,则数组也就支持了随机访问。并且根据排列的顺序,设定了索引,根据索引进行访问,实质上还是直接访问的内存,性能开销极小,并且效率极高。

【缺点】

  1. 根据内容查找元素的速度慢;
  2. 数组的大小一但确定则不能改变,无法进行扩容,即不能实现动态内存;
  3. 数组仅能存储同一种类型的数据;
  4. 增加、删除元素效率慢;
  5. 未封装任何方法,所有操作都需要用户自己定义;
  6. 数组一旦确定大小,无论是否使用都占用空间存储,造成了性能浪费;
  7. 数组的空间必须是连续的,这就造成数组在内存中分配空间时必须找到一块连续的内存空间。所以数组不可能定义的太大,因为内存中不可能有那么多大的连续的内存空间,而解决这个问题的方法就是使用链表。

缺点总结

因为数组在使用之前就必须确定好数组的大小,以及数组中存储的数据类型,其数据内容全部存储在内存中,并且连续,这就说明,数组必须在内存中找到一块足够大的连续的内存空间才能进行存储,但相比于硬盘,内存的存储空间是珍贵的,不能长时间大量占用,对内存造成了浪费,即对性能的浪费,数组一旦创建,即表明着在内存中开辟了相关的内存空间,如若想对数组进行扩容是几乎不可能的,消耗的性能是非常大的,创建以后,无论是否使用,都占用内存。

实战练习题

源代码:https://gitee.com/ihaner/leetcode/blob/master/src/problem/leet1929/

源代码:https://gitee.com/ihaner/leetcode/blob/master/src/problem/leet1920/

源代码:https://gitee.com/ihaner/leetcode/blob/master/src/problem/leet1480/

补充

如果在阅读本文时发现某处地方有错误,请在评论区直接指出来,或者博主的练习题做的不好的地方也可以评论区留言,或者直接在Gitee上留言,谢谢大家

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2021-09-12 13:24:22  更:2021-09-12 13:24:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/17 13:51:53-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码