「数组」简析

news/2024/11/29 5:38:13/

前言

前言:研究一个数据结构的时候,首先讲的是增删改查。

文章目录

  • 前言
  • 一、一维数组
    • 1. 简介
      • 1)定义
      • 2)优点
      • 3)缺点
      • 4)使用数组的4个步骤
    • 2. 操作
      • 1)访问
      • 2)数组下标为什么从0开始?
      • 3)读取和更新(读和写)
        • a. 读取数据
        • b. 更新数据
  • 二、二维数组

一、一维数组

1. 简介

1)定义

一系列有序数据的集合,其中所有数据都具有相同的数据类型

2)优点

支持随机访问。由于数据连续存储,支持索引操作。

3)缺点

a. 声明数组时需要指定长度,数组一旦初始化完成之后长度就是不可变的。

b. 插入和删除操作效率低。

4)使用数组的4个步骤

声明数组,开辟空间,进行赋值,操作处理。

2. 操作

1)访问

数组通过索引进行访问,即通过中括号 [] 中指定下标来访问,下标位置从 0 开始。

2)数组下标为什么从0开始?

  • 首地址为 base_address
  • 寻址公式为 array[i] = base_address + i * data_type_size。其中data_type_size为数据类型所占字节长度。例如,array[1]=1000+1*4,其中 4intint 类型所占的字节数;
  • 如果下标从 1 开始,寻址公式为 array[i] = base_address + (i - 1) * data_type_size。这样每次访问数组元素都会进行 i-1 操作,影响性能;
  • 综上,数组下标需要从0开始;

3)读取和更新(读和写)

a. 读取数据

通过下标访问。

b. 更新数据

添加数据,新值覆盖旧值。例如,a[0] = 3;
删除数据,通过赋新值操作。
插入和删除本质上都是覆盖操作。

二、二维数组

简单理解,多维数组就是数组中的数组,数组中的每一个元素也是一个数组。


http://www.ppmy.cn/news/18580.html

相关文章

可笑 在网页上复制点东西 还需要money?进来看~

前言 哈喽 大家好! 我是木易巷,我回来啦!!! 现在好多平台都变成了不开会员不能复制这样的情况。士可杀不可辱!作为一个优秀的复制粘贴工程师,在网页上复制点东西,还需要我掏钱&#…

Streamlit如何展示3D模型?

Streamlit 是一个非常好的创建 web demo 的库,但是对于单目深度估计很难找到可以展示 3D 模型的东西。 正如我刚刚在 Jupyter Notebook 中使用 obj2html 库可视化 3D 模型所做的那样,我创建了一个演示:HuggingFacae Spaces Monocular Depth …

详解 C 语言文件操作(上)

目录 一、什么是文件? 1.1 - 文件的基本概念 1.2 - 文件的分类 1.3 - 文件名 二、缓冲文件系统和非缓冲文件系统 三、文件指针类型 四、文件的打开和关闭 4.1 - fopen 4.2 - fclose 一、什么是文件? 1.1 - 文件的基本概念 所谓"文件&quo…

论文投稿指南——中文核心期刊推荐(武器工业)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄 在期刊论文的分布中,存在一种普遍现象:即对于某一特定的学科或专业来说,少数期刊所含…

SAPIEN PowerShell Studio 介绍

PowerShell Studio是一款优秀的基于PowerShell研发的脚本编辑器,它拥有全新的代码分析、智能预选、xaml支持功能,能够给用户提供一套完整的软件开发环境,让用户能够更加轻松的工作,这样一来大家开发项目的效率就会大大提升。创建模…

11.框架MyBatis-Plus

一、基本概念 MyBatis-Plus&#xff08;简称 MP&#xff09;是一个 MyBatis 的增强工具&#xff0c;在 MyBatis 的基础上只做增强不做改变&#xff0c;为简化开发、提高效率而生。 导入依赖&#xff1a; <dependency><groupId>com.baomidou</groupId><ar…

LeetCode刷题笔记 - JavaScript(四)

文章目录1.剑指 Offer 37. 序列化二叉树1.剑指 Offer 19. 正则表达式匹配剑指 Offer 37. 序列化二叉树 剑指 Offer 19. 正则表达式匹配 LCOF 1.剑指 Offer 37. 序列化二叉树 请实现两个函数&#xff0c;分别用来序列化和反序列化二叉树。 你需要设计一个算法来实现二叉树的序列…

【Ajax】了解Ajax与jQuery中的Ajax

一、了解Ajax什么是AjaxAjax 的全称是 Asynchronous Javascript And XML&#xff08;异步 JavaScript 和 XML&#xff09;。通俗的理解&#xff1a;在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式&#xff0c;就是Ajax。2. 为什么要学Ajax之前所学的技术&#xf…