首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

数据结构-数组

---- 数据结构-数组 数组 数据结构中最基本的一个结构就是线性结构,而线性结构又分为连续存储结构和离散存储结构。所谓的连续存储结构其实就是数组。...) 自定义属性两个:size用来表示数组的大小,data用来表示一个准确的集合 概念区分:size表示数组的大小,capacity表示数组容量的大小 构造函数:有参构造,接受一个int值,用来初始化数组容量...;无参构造:给容量一个默认值 toString()方法,输出数组的大小和数组容量的大小,以及数组中的值 getSize()方法,调用方通过方法来获取数组的大小 getCapacity()方法,调用方通过方法来获取数组容量的大小...find()方法,一个参数,查找数组中是否包含param,如果包含返回索引值,不包含返回-1 findAll()方法,一个参数,查找数组中是否包含param,返回包含的索引数组 添加的代码(查) /...param * 1.创建一个int数组用来接收返回的索引值 * 2.索引容量最大为数组的大小 * 3.用临时变量来存储int数组的大小 * 4.如果相等,给 int

1K40

数据结构-数组

摘要 初衷 实现一个静态数组(python 版) 1 初衷 工作了一段时间后,发现基础实在是太重要了,老话说: 万丈高楼平地起。地基不牢,肯定跑不快,天花板也愈发明显。...比如现在做的 ae 二次开发,面对一些场景,需要设计数据结构、考虑内存的高效使用、快速存取; 准备将数据结构再碾压一遍: ?...那就从最简单的数组开始,自主实现这些数据结构,探索经常使用的api是如何构建的,实现一个好用的Api, 其实也是为客户提供良好服务的体现,服务不应该局限于网络to c ,to b 服务。 2....实现一个静态数组 2.1 示意图 ? 2.2 代码如下: #!..._data): # 已有元素的个数 == 数组的capacity raise (Exception, 'AddList failed.

41030
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    数据结构-数组

    数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。 这个定义里有几个关键词,理解了这几个关键词,我想你就能彻底掌握数组的概念了。...所以,正确的表述应该是,数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。 容器能否完全替代数组?...如果数据大小事先已知,并且对数据的操作非常简单,用不到 ArrayList 提供的大部分方法,也可以直接使用数组。 还有一个是我个人的喜好,当要表示多维数组时,用数组往往会更加直观。...内容小结 我们今天学习了数组。它可以说是最基础、最简单的数据结构了。.../java/com/s1 参考 05 | 数组:为什么很多编程语言中数组都从0开始编号?

    31300

    flexible array柔性数组、不定长的数据结构Struct详解

    在C/C++中定义数组,是一个定长的数据结构,最常用的定义如下 int arr[100]; 上述代码的中arr数组的长度已知,我们把上面的语句称之为声明语句,因为在编译期数组的长度已经确定了,我暂且发明了一个词来称呼这类数组...套路先行 我们先来看一看柔性数组到底是用来干什么的吧? 柔性数组(flexible array member)也叫伸缩性数组成员,这种结构产生与对动态结构体的去求。...在通常情况下,如果想要高效的利用内存,那么在结构体内部定义静态的数组是非常浪费的行为。其实柔性数组的想法和动态数组的想法是一样的。...我们看了一下指针p和数组的起始地址。我们可以看到动态数组的内存块和字符串的内存是两块不一样的内存。...然而gcc, clang++预先支持了C99的玩法,所以在Linux下编译无警告 总结 我们学习了柔性数组成员的来源及一些用法, 其实柔性数组成员在实现跳跃表时有它特别的用法,在Redis的SDS数据结构中和跳跃表的实现上

    1.5K20

    数组详解

    一维数组的创建和初始化 1.1 数组的创建 数组是一组相同类型元素的集合。...在C99标准支持了变长数组的概念。 1.2 数组的初始化 数组的初始化是指,在创建数组的同时给数组的内容一些合理初始值(初始化)。...二维数组的创建和初始化 2.1 二维数组的创建 二维数组相当于存放行和列。...(有两个例外) 1. sizeof(数组名),计算整个数组的大小,sizeof内部单独放一个数组名,数组名表示整个数 组。 2. &数组名,取出的是数组的地址。&数组名,数组名表示整个数组。...数据实例: 5.1 数组的应用实例1:三子棋 http://t.csdn.cn/OEdsa 5.2 数组的应用实例2:扫雷 http://t.csdn.cn/6NpQq 我的这两篇文章有详解哦,欢迎大家阅读

    15310

    数据结构数组

    一.数组的基本概念 数组可以看成是多个相同类型数据组合,对这些数据的统一管理。 数组变量属引用类型,数组也可以看成是对象,数组中的每个元素相当于该对象的成员变量。...数组的元素可以是任何数据类型,包括基本类型和引用类型。 C和C++中的数组都可以分配在栈上面,而JAVA中的数组是只能分配在堆上面的,因为JAVA中的数组是引用类型。...二.一维数组 一维数组的声明方式有2种: 格式一:数组元素类型  数组名[ ];  即type var[ ]; 格式二:数组元素类型[ ] 数组名; 即type[ ] var; 格式二声明数组的方法与C...三.数组的模型 一维数组:一维数组就是一行,一行小格。 二维数组:二维数组就是一行加一列组成的一个平面分成的小格,有行有列。 三维数组:三维数组就是一个立方体。 人类对最多认识到三维空间。...格式为:数组名 = new 数组元素的类型[数组元素的个数] 五.元素为引用数据类型的数组 注意:元素为引用数据类型的数组中的每一个元素都需要实例化。

    62850

    数据结构(5):数组

    上一回简单的说了一下队列两个常见的应用:层次遍历以及在计算机系统中的应用,这一回,我们来看一个大家都非常熟悉的数据结构数组! ? ? 数组的定义 ?...数组是由 n(n≥1)个相同类型的数据元素构成的有限序列,每个数据元素称为一个数组元素,每个元素在 n 个线性关系中的序号称为该元素的下标,下标的取值范围称为数组的维界。...数组与线性表的关系:数组是线性表的推广。一维数组可视为一个线性表;二维数组可视为其元素也是定长线性表的线性表,以此类推。数组一旦被定义,其维数和维界就不再改变。...大多数计算机语言提供了数组数据类型,逻辑意义上的数组可采用计算机语言中的数组数据类型进行存储,一维数组的所有元素在内存中占用一段连续的存储空间。...稀疏矩阵的三元组即可以采用数组存储,也可以采用十字链表法存储。 ? 数组的应用 ? 关于数组的定义就说到这里,查找元素和修改元素的操作非常的简单,我就直接跳过。我们直接来看到数组的应用!

    93810

    Python数据结构——数组

    数组是一种基本的数据结构,用于存储一系列相同类型的元素。Python提供了多种数组实现,包括列表、NumPy数组和array模块。...本文将详细介绍Python中的数组数据结构的使用,并提供示例代码来说明。...列表(List):Python的内置动态数组 列表是Python中最常用的数据结构之一,它可以容纳多种数据类型,并可以动态调整大小。...算法实现:数组在算法和数据结构的实现中有着广泛应用。 总结 数组是一种重要的数据结构,用于存储和管理一系列相同类型的元素。...了解这些数组数据结构及其应用场景将有助于你更好地解决各种编程问题,从数据分析到算法实现,都需要数组来组织和管理数据。无论是在数据科学、计算机图形学、科学计算还是算法设计中,数组都是一个不可或缺的工具。

    87410

    数据结构数组

    1、数据结构研究的是数据如何在计算机中进行组织和存储,使得我们可以高效的获取数据或者修改数据。   数据结构包含三种结构,线性结构,树结构,图结构。其中,线性结构包含数组,栈,队列,链表,哈希表等等。...3、数据结构数组。数据的查询,修改,删除,增加,动态扩容以及数组的缩容。   3.1、添加元素的时间复杂度分析。     ...5.4、数组的动态扩容。动态数组,是区别于静态数组的,静态数组的容量是有限的。 ? 此时,可以新创建一个2倍于原来数组长度的数组。将旧数组的元素依次赋值到新数组的元素。 ?...将旧数组的元素依次赋值到新数组的元素。实际上,是需要进行循环的,循环遍历原数组的所有元素,把这些元素依次赋值到新数组中。 ?...数组的动态缩容,避免出现数组空间浪费,和数组的动态扩容反过来,自己可以理解一下的。

    61440

    数据结构数组

    数组简介 数组是一种基本的数据结构,它是一组有序的元素的集合,这些元素可以是相同类型的。数组中的每个元素都有一个唯一的索引,通常从0开始,用于访问元素。...多维数组数组可以是多维的,例如二维数组用于表示矩阵、图形,三维数组用于表示立方体等。...数组 vs. 切片 在Go编程语言中处理数据时,经常会遇到数组和切片。这两者是不同的数据结构,有各自的特性和用途。本文将对Go中的数组和切片进行比较,以帮助大家更好地理解它们。 1....在Go中,数组是具有固定长度的数据结构,一旦创建,其大小不可更改。相比之下,切片具有动态大小,可以在运行时动态增长或缩小。 2....切片是Go中广泛使用的数据结构,尤其在处理集合数据时非常有用。 综上,Go中的数组和切片在功能和用途上有明显的差异,开发者需要根据具体需求选择适当的数据结构。切片通常更灵活,因此在许多情况下更受欢迎。

    17660

    数据结构数组

    数组 : 线性结构 线性结构也就是一列数据,相互串联起来,除了此处说的数组外还有队列,栈,链表,而非线性结构的数据那就是二叉树还有就是图结构 连续的存储空间,相同类型的数据 数组的连续的存储空间让数组有了我们常说的特性...它可以根据其数组下标来直接访问其数据所在位置对应的值,不得不想想他是怎么直接去访问的呢?...,每一次插删除入都需要移动后面储存位置所以说数组的插入和删除是很浪费性能的。...) 那么如果直接使用数组的话肯定会规避掉一些很细节的问题比如说使用容器内存浪费,还有就是容器是不能为存储值类型的如int,long等 在看专栏的时候有一个问题也就是为什么数组下标的起始值为 0而不为1...数组的计算公式为 a[i]_adress =base_adress +i*date_type_size 从数组的内存模型来看其下标也就是其偏移(offset) 如果用a来表示数组的首地址,那么a[0]也就是偏移量

    20320

    数据结构数组

    数组的特点与应用 本文代码以Java为例 在计算机科学中,数组是一种基础而重要的数据结构,它在Java等编程语言中被广泛使用。...本文将深入介绍数组的特点,探讨时间复杂度,并通过Java案例展示数组的应用,帮助读者更好地理解和应用这一核心数据结构。 1....数组的基本概念 数组是一种线性数据结构,由一组相同类型的元素按照顺序排列而成。以下是数组的基本概念: 1.1 固定大小 数组在创建时需要指定固定的大小,这个大小在数组的生命周期内是不可变的。...数组提供了简单而高效的基础,为这些数据结构的实现提供了便利。 5. 总结 数组作为一种基础的数据结构,具有固定大小、相同数据类型、随机访问等特点。...数组的魅力在于其简单而高效,是计算机科学中不可或缺的一部分。希望本文能帮助读者更好地理解和应用数组这一重要的数据结构

    12710

    PHP数组详解

    大家好,又见面了,我是全栈君 作为一名C++程序员,在转做PHP开发的过程中,对PHP数组产生了一些混淆,与C++数组有相似的地方,也有一些不同,下面就全面地分析一下PHP的数组及其与C++中相应数据类型的区别和联系...数组的分类: 1、数值数组:也叫索引数组,即以数字(从0 开始)作为数组下标。相当于C++中的vector。 2、关联数组:以字符串作为数组下标。相当于C++中的map。...3、多维数组数组中每个元素也是一个数组。其子数组中的每个元素也可以是数组数组的声明: 1、数值数组 a、如下例子中,会自动分配数字ID键。...数组遍历 1、for循环遍历 for循环只能遍历索引数组。 <?...} 遍历关联数组 foreach(array_expression as $key=>$value) { 循环体; } A、一维数组遍历 索引数组 <?

    3.2K10

    shell 数组详解

    2)使用数组来定义,我只需要定义5个数组来接收所有用户的数据就可以了,5个数组就能解决一切,你觉得你会不会想了解下数组是什么呢?...一、数组介绍 数组可以让用户一次赋予多个值,需要读取数据时只需通过索引调用就可以方便读出了。...普通数组:只能使用整数作为数组索引(元素的索引) 关联数组:可以使用字符串作为数组索引(元素的索引) 二、数组定义 数组名称=(元素1 元素2 元素3 ...)...array4=(1 2 3 4 "hello world" [10]=linux) 四、数组取值 取值方式: ${数组名称[索引]} 索引: 默认情况下索引是指数组中的元素[存的值]在数组中的顺序,...关联数组使用首先需要申明该数组为关联数组,申明方式: declare -A 数组名称 首先声明关联数组 declare -A asso_array1 declare -A asso_array2 declare

    43010

    稀疏数组详解

    稀疏数组 基本介绍 当一个数组中大部分元素为0,或者同一个值的数组时,可以使用系数数组来保存该数组。 稀疏数组的处理方法是: 记录数组一共有几行几列,有多少个不同改的值。...把具有不同值的元素的行列及值记录在一个小规模的数组中,从而缩小程序的规模 稀疏数组转换 二维数组转稀疏数组的思路: 遍历 原始的二维数组,得到有效数据的个数sum 根据sum就可以创建 系数数组sparseArr...intsum+1 将二维数组的有效数据存入到稀疏数组 稀疏数组转原始的二维数组的思路 先读取稀疏数组的第一行,根据第一行的数据,创建原始的二维数组。...、 在读取稀疏数组后几行的数据,并赋给原始的二维数组即可。...代码示例 /** *当前类用于将普通的二维数组转换为稀疏数组进行存储 */ public class SparseArray { public static void main(String

    57040

    后缀数组详解

    什么是后缀数组 后缀数组是处理字符串的有力工具 —罗穗骞 个人理解:后缀数组是让人蒙逼的有力工具!...这样不断排下去,最后就可以完成排序啦 我相信大家看到这里肯定是一脸mengbi 下面我结合代码和具体的排序过程给大家演示一下 过程详解 还是以上面的图片为例 ?...排完序之后,我们得到了一个新的sa数组 此时我们用sa数组来更新rak数组 我们前面说过rak数组是可能会重复的,所以我们此时用p来表示到底出现了几个名次 还需要注意一个事情,在判断是否重复的时候,我们需要用到上一轮的...tp[i]:基数排序的第二关键字,意义与sa一样 此时rak数组和tp数组都已经是排好序的, ‘所以我们此时做的就是拿这两个数组来更新sa数组 倒着循环的目的是让靠前的后缀先出现 后记 本蒟蒻也是第一次看这么难的东西...这种东西是谁发明的啊啊啊啊啊脑洞也太大了吧啊啊啊啊啊啊 哦对了,后缀数组还有一个非常有用的数组叫做Height,这个数组更神奇,,有空再讲吧。

    4.4K50

    Java数组详解

    数组定义和访问 容器概念 容器:是将多个数据存储到一起,每个数据称为该容器的元素。 数组概念 数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致。...数组的定义 方式一 格式: 数组存储的数据类型[] 数组名字 = new 数组存储的数据类型[长度]; 数组定义格式详解数组存储的数据类型: 创建的数组容器可以存储什么数据类型。...[] : 表示数组数组名字:为定义的数组起个变量名,满足标识符规范,可以使用名字操作数组。 new:关键字,创建数组使用的关键字。 数组存储的数据类型: 创建的数组容器可以存储什么数据类型。...格式: 数组名[索引] 数组的长度属性: 每个数组都具有长度,而且是固定的,Java中赋予了数组的一个属性,可以获取到数组的 长度,语句为: 数组名.length ,属性length的执行结果是数组的长度...System.out.println(arr.length); } 索引访问数组中的元素: 数组名[索引]=数值,为数组中的元素赋值 变量=数组名[索引],获取出数组中的元素 数组原理内存图 内存概述

    30420
    领券