LeetCode

一、数组简介

1、集合

集合一般被定义为:由一个或多个确定的元素所构成的整体。

通俗来讲,集合就是将一组事物组合在一起

集合的特性:

  • 首先,集合里的元素类型不一定相同。 你可以将商品看作一个集合,也可以将整个商店看作一个集合,这个商店中有人或者其他物品也没有关系。
  • 其次,集合里的元素没有顺序。 我们不会这样讲:我想要集合中的第三个元素,因为集合是没有顺序的。
  • 事实上,这样的集合并不直接存在于编程语言中。然而,实际编程语言中的很多数据结构,就是在集合的基础上添加了一些规则形成的。

2、列表

        列表(又称线性列表)的定义为:是一种数据项构成的有限序列,即按照一定的线性顺序,排列而成的数据项的集合。

        列表的概念是在集合的特征上形成的,它具有顺序,且长度是可变的元素类型不一定相同你可以把它看作一张购物清单:
在这张清单中:

  • 购物清单中的条目代表的类型可能不同,但是按照一定顺序进行了排列;
  • 购物清单的长度是可变的,你可以向购物清单中增加、删除条目。

        在编程语言中,列表最常见的表现形式有数组和链表,而我们熟悉的栈和队列则是两种特殊类型的列表。除此之外,向列表中添加、删除元素的具体实现方式会根据编程语言的不同而有所区分。

3、数组

        数组是列表的实现方式之一,也是面试中经常涉及到的数据结构。

        正如前面提到的,数组是列表的实现方式,它具有列表的特征,同时也具有自己的一些特征。然而,在具体的编程语言中,数组这个数据结构的实现方式具有一定差别。比如 C++ 和 Java 中,数组中的元素类型必须保持一致,而 Python 中则可以不同。Python 中的数组叫做 list,具有更多的高级功能

        那么如何从宏观上区分列表和数组呢?这里有一个重要的概念:索引。

        首先,数组会用一些名为 索引 的数字来标识每项数据在数组中的位置,且在大多数编程语言中,索引是从 0 算起的。我们可以根据数组中的索引,快速访问数组中的元素。

而列表中没有索引,这是数组与列表最大的不同点。其次,数组中的元素在内存中是连续存储的,且每个元素占用相同大小的内存

相反,列表中的元素在内存中可能彼此相邻,也可能不相邻。比如列表的另一种实现方式——链表,它的元素在内存中则不一定是连续的。 

4、集合,列表,数组的区别和联系

        集合,列表和数组是计算机编程中常用的数据结构,它们都可以存储一组数据,但是在实际应用中有一些区别和联系。

4.1 数据类型

集合(Set)是一个不重复元素的无序组合,用于表示一组元素中的唯一值。

列表(List)是一个有序元素的集合,可以包含重复值。

数组(Array)是一组有序的元素集合,所有元素都是相同数据类型。

4.2 存储方式

集合一般使用哈希表或红黑树实现,这样可以保证其快速的查找和去重功能。

列表通常使用链表或动态数组实现,因为列表的元素顺序是可变的,可以动态添加或删除元素。

数组使用连续的内存空间来存储数据,可以使用索引访问每个元素,具有快速的随机访问和操作功能。

4.3 应用场景

集合适用于需要对数据进行去重、交集、并集、差集等操作的场景。

列表适用于需要维护元素的顺序以及进行添加、删除操作的场景,例如队列和栈等数据结构。

数组适用于需要随机访问元素的场景,例如排序、查找等算法。

4.4 代码实现

集合和列表在大多数编程语言中都有内置的实现,可以直接使用相关库或API。

数组也是大多数编程语言的基本数据类型之一,可以使用数组定义变量或者创建数组对象。

总之,集合,列表和数组都是常用的数据结构,不同的应用场景需要不同的数据结构来实现。选择合适的数据结构可以提高程序的效率和可读性。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值