数据结构系列 线性表 【重点】数组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上留言,谢谢大家

评论 39
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

友人和他的朋友们

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值