数据结构中的数组——解释、功能和示例

已发表: 2021-06-21

数据结构已被证明是几乎所有已广泛应用于大多数计算机程序的编程语言的关键部分。 正是通过数据结构,程序才能有效地管理和访问数据,因为单独访问和存储单个数据是一个耗时的过程。 算法专门设计用于创建数据结构中所需的特定操作。 因此,数据结构和算法共同为复杂的应用程序和程序奠定了基础。

在本文中,我们将关注一种数据结构,即数组。

数组是一种数据结构,其中元素或数据存储在连续的位置。 每当用户拥有一组具有相同数据类型的数据时,数组数据结构就是组织该数据的选项。 数组的大小取决于数据的大小。 在将元素存储到数组中之前,必须定义数组的大小,以便有效地合并所有元素。 存储在数组中的每个元素都有一个分配给它的索引值,这有助于识别该元素在数组中的位置。 数组的第一个元素的索引值为零。

数组数据结构相关的重要术语是:

  • 元素:元素表示存储在数据结构中的每个对象或项。
  • 索引:索引表示数组中元素的位置。 它有一个数值。

数组的大小随着不同的编程语言而变化。 根据大小,数组可能有两种类型:静态数组和动态数组。

目录

1.静态数组:

这些类型的数组在创建过程中具有预定义的大小。 因此,静态数组也称为固定数组或定长数组。 可以通过两种方式定义数组。 可以在创建数组时定义数组的元素,也可以在创建数组时定义数组的大小。 在后一种情况下,不需要指定元素。 默认值可能分配给未初始化的数组或先前分配留在内存中的值。

一旦定义了大小,数组就不能收缩或扩展。 由于在数组声明期间分配了内存,因此只有编译器可以销毁数组。 添加元素是不可能的,因为用户不确定是否存在任何可用内存来分配给下一个元素。

下表显示了不同编程语言中使用的数组示例。

编程语言定义的数组内容没有内容的数组的定义大小
C++ 整数标记[] = {10, 20, 30}; 整数标记[3];
C# int[] 标记 = {10, 20, 30}; int[] 标记 = = new int[3];
爪哇int[] 标记 = {10, 20, 30}; int[] 标记 = = new int[3];
JavaScript 变量标记 = [10, 20, 30]; var 标记 = 新数组(3);
Python 标记 = [10, 20, 30] 标记 = [无] * 3
迅速变量值:[Int] = [10, 20, 30] var 标记:[Int] = [Int](重复:0,计数:3)

2.动态数组

顾名思义,数组是动态的,这意味着可以在运行时添加或删除元素。 与长度固定的静态数组相比,动态数组没有固定的数组长度或大小。 大多数编程语言都提供标准库函数或内置函数来创建和管理动态数组。

下表显示了不同编程语言中数组的创建

编程语言班级添加元素移除元素
C++ #include <列表>

标准::列表

插入擦除
C# System.Collections.Generic.List 添加消除
爪哇java.util.ArrayList 添加消除
JavaScript 大批推,拼接流行,拼接
Python 列表附加消除
迅速大批附加消除

数组的表示

数组的表示根据其在不同编程语言中的实现而有所不同。 数组是python数据结构的重要组成部分,已经用python编程语言进行了说明。

python 数据结构中,数组是通过关键字array处理的 每当使用关键字数组时,用户必须存储相同数据类型的元素。

资源

图 1:数组示例

根据图 1,阵列的图示表明

  • 数组的大小为 10,这意味着数组中可以存储 9 个元素。
  • 索引值已经在上面提到了以 0 开头的数组。
  • 存储在数组中的元素可以是任何数据类型,并且可以通过它们的索引值来访问元素。

图 2显示了另一个插图其中描述了 python 和 C++ 的语法。

资源

图 2 :使用 python 和 C++ 声明数组(

数组的属性

数组数据结构几个属性:

  • 存储在数组中的元素具有相同的数据类型和相同的大小,即int 数据类型的大小为 4 个字节。
  • 连续的内存位置用于存储数据结构的元素。 最小的内存分配给数组中的第一个元素。
  • 索引值用于查找数组中元素的位置。 索引从 0 开始,并且始终小于数组中元素的总数。
  • 由于可用的索引值,可以随机访问数组中的元素。 元素的地址可以通过添加偏移值的基地址来计算。
  • 数组的概念在所有编程语言中都是相同的。 只有初始化和声明有所不同。
  • 数组名称、元素和数据类型是所有语言中通用的三个部分。

创建数组

python数据结构中数组的创建如下所示。

  • 可以导入python数据结构中数组模块来创建数组。
  • array(data_type, value_list ) 是可以在python 数据结构中创建数组的语法
  • 数据类型应该是实整数或浮点数。 python中不允许使用字符串。

图 2 展示了如何在 python 中创建一个数组。 显示如何在 python 中导入数组模块的代码示例

导入数组

标记 = array.array('i', [100,200,300])

打印(标记)

数组的声明可以通过

arrayName = array.array(数据类型的类型代码,[array,items])

这可以在图 3中表示

资源

图 3:python 中的数组声明

创建数组时使用的重要术语:

  • 标识符:必须像变量名一样指定的名称
  • 模块:称为数组的特殊模块必须在python中导入。
  • 方法:是python中初始化数组的具体方法。 吃了两个参数,类型代码和元素。
  • 类型代码:必须使用可用的类型代码指定数据类型。
  • 元素:数组元素必须在方括号内指定,例如 [200,400,100.]

可用的类型代码如下所示

数组操作

随着数据结构和算法的可用性,可以在任何类型的数据结构中执行多种操作。 数组数据结构可以具有添加、删除、加入和更新元素等操作。

下面列出了可以在python数据结构的数组中进行的操作

1. 向数组中添加元素

  • 内置的 insert() 函数用于向数组添加元素。
  • 使用的语法:arrayName.insert(index, value)
  • 可以通过 insert() 函数将一个或多个元素添加到数组中。
  • 可以使用 Input: append() 函数将元素添加到数组的开头或任何特定位置

导入数组

标记 = array.array('i', [200,500,600])

标记.插入(1, 150)

输出:数组('i',[200,150,500,600])

下面显示了一个带有代码的示例,取自

代码输出:

资源

2.删除数组中的一个元素

  • 一个元素可以通过它的值从数组中删除。
  • 使用的语法:arrayName.remove(value)
  • 示例:将 250 的值添加到具有元素 100、300、200、500 和 800 的数组中后,将其删除。

输入:

导入数组

标记 = array.array('i', [100,300,200,500,800])

标记.插入(1, 250)

打印(标记)

标记.删除(250)

输出:数组('i',[100,300,200,500,800])

取自的代码示例

资源

代码输出:

3. 访问数组中的元素

  • 索引运算符 [ ]用于访问数组中的元素。
  • 索引号用于访问数组中的任何元素

下面显示了一个代码示例,取自

代码输出:

资源

4. 搜索数组中的元素。

  • 内置index()方法用于搜索数组中的元素。
  • 函数返回要搜索的元素的索引值。
  • 示例:在元素 100、250、300、200、500 和 800 的数组中搜索元素 250。

输入:导入数组

标记 = array.array('I', [100,250,300,200,500,800])

打印(标记。索引(250))

输出:1

用于在数组中搜索元素的代码

代码的输出是

资源

3. 更新数组中的元素

  • 更新元素的过程类似于插入方法,唯一的区别是在更新现有值时将在给定索引处替换。
  • 新值被重新分配给索引以更新数组中的元素。
  • 示例:用元素 100、250、300、200、500 和 800 的数组中的 350 更新元素 250。

输入:导入数组

标记 = array.array('i', [100,250,300,200,500,800])

标记[1] = 350

输出:

数组('我',[100,350,300,200,500,800])

显示元素更新的代码如下所示

代码的输出是

资源

阵列的优点

  • 可以在单个变量中存储多个值,而不是为每个元素创建单独的变量。
  • 使用数组可以轻松快速地处理多个值。
  • 可以以更快的方式对数组的元素进行排序和搜索。

结论

本文讨论了一种特殊类型的数据结构,即数组及其相关操作。 有了这些基本概念,就可以针对现实生活中的问题构建更复杂的程序。 如果你想加强python中数据结构概念的基础,可以参考upGradExecutive PG Program in Data Science的以下课程。 该课程由 IIIT-Bangalore 认证,拥有超过 14 种编程工具和语言,为您的行业之旅做好准备。 它专为 21 至 45 岁年龄段的入门级专业人士设计。 所以,不要在这里停止学习,通过 upGrad 课程掌握语言及其在机器学习领域的应用。 如果您有任何疑问,我们的协助团队将随时为您提供帮助。

数组的优点和缺点是什么?

数组是一种强大的线性数据结构。 但是,它有一些优点和缺点,如下所述:
优点
1. 在数组中,可以通过索引号轻松访问元素。
2. 数组可以用来存储多个相似的实体。
3、搜索操作相当方便。 它可以在 O(n) 时间和 O(log n) 的排序数组中完成,其中 n 是元素的数量。
缺点
1. 由于内存是静态分配在数组中的,所以数组的大小是不能改变的。
2. 它是同质的,即只有具有相似数据类型的元素才能存储在数组中。

区分数组和列表?

下面说明了数组和列表之间的区别。
大批 -
1. 数组数据结构是同构的,即只有数据类型相似的元素才能存储在数组中。
2. 使用数组前需要导入模块。
3. 算术运算直接适用。
4. 大数据首选。
4.更紧凑,消耗更少的内存。
列表 -
1、列表是异构的,里面可以存储多种数据类型的元素。
2. 无需导入模块,因为它是内置在 Python 中的。
3.算术运算不能直接运算。
4. 较小数据的首选。
5.内存消耗较多。

描述阵列的主要应用?

数组数据结构在现实生活中有很多应用,它也被用作实现其他用户定义数据结构的基础。 数组的一些主要应用如下:
1.数组用于实现和执行矩阵运算。 矩阵主要用于地质调查和科学研究实验。
2.使用数组数据结构实现了几个用户定义的数据结构。 这些包括堆栈、队列、堆、哈希表和列表。
3.程序使用数组来规范控制流,而不是使用相对冗长的传统elif语句。
4.为CPU调度进程编写的算法也使用数组数据结构来提高CPU性能。
5. 图使用邻接表作为它们的实现之一。 向量(数组的应用)用于创建这些邻接列表。