跳转到内容
主菜单
主菜单
移至侧栏
隐藏
导航
首页
最近更改
随机页面
MediaWiki帮助
代码酷
搜索
搜索
中文(中国大陆)
外观
创建账号
登录
个人工具
创建账号
登录
未登录编辑者的页面
了解详情
贡献
讨论
编辑“︁
一维数组与多维数组
”︁
页面
讨论
大陆简体
阅读
编辑
编辑源代码
查看历史
工具
工具
移至侧栏
隐藏
操作
阅读
编辑
编辑源代码
查看历史
常规
链入页面
相关更改
特殊页面
页面信息
外观
移至侧栏
隐藏
您的更改会在有权核准的用户核准后向读者展示。
警告:
您没有登录。如果您进行任何编辑,您的IP地址会公开展示。如果您
登录
或
创建账号
,您的编辑会以您的用户名署名,此外还有其他益处。
反垃圾检查。
不要
加入这个!
{{DISPLAYTITLE:一维数组与多维数组}} == 简介 == '''数组'''是编程中最基础且重要的数据结构之一,它用于存储相同类型的元素的集合,并通过索引访问。数组分为'''一维数组'''和'''多维数组''',它们在内存中的存储方式和访问逻辑有所不同,但核心思想都是通过连续的内存空间高效管理数据。 === 一维数组 === 一维数组是最简单的数组形式,可以看作是一个线性表,所有元素按顺序排列在内存中。每个元素通过一个整数索引(通常从0或1开始)来访问。 === 多维数组 === 多维数组是数组的扩展形式,可以理解为“数组的数组”。常见的多维数组包括二维数组(如矩阵)、三维数组等。多维数组在内存中仍然以线性方式存储,但通过多个索引访问元素。 == 一维数组 == === 定义与初始化 === 一维数组在大多数编程语言中的定义方式类似,以下是一些示例: ==== C语言 ==== <syntaxhighlight lang="c"> // 定义并初始化一个包含5个整数的一维数组 int arr[5] = {1, 2, 3, 4, 5}; // 访问第三个元素(索引从0开始) int third_element = arr[2]; // 值为3 </syntaxhighlight> ==== Python ==== <syntaxhighlight lang="python"> # Python中使用列表(List)模拟一维数组 arr = [1, 2, 3, 4, 5] # 访问第三个元素(索引从0开始) third_element = arr[2] # 值为3 </syntaxhighlight> === 内存表示 === 一维数组在内存中是连续存储的。例如,一个包含5个整数的数组在内存中的布局如下: <mermaid> graph LR A[索引0: 1] --> B[索引1: 2] --> C[索引2: 3] --> D[索引3: 4] --> E[索引4: 5] </mermaid> === 常见操作 === * '''遍历数组''':依次访问每个元素。 * '''插入/删除元素''':通常需要移动后续元素(静态数组效率较低)。 * '''查找元素''':可以通过线性查找或二分查找(如果有序)。 ==== 遍历示例(Python) ==== <syntaxhighlight lang="python"> arr = [10, 20, 30, 40, 50] for i in range(len(arr)): print(f"索引 {i} 的值是 {arr[i]}") </syntaxhighlight> 输出: <pre> 索引 0 的值是 10 索引 1 的值是 20 索引 2 的值是 30 索引 3 的值是 40 索引 4 的值是 50 </pre> == 多维数组 == === 定义与初始化 === 多维数组最常见的例子是二维数组(矩阵)。以下是定义方式: ==== C语言 ==== <syntaxhighlight lang="c"> // 定义一个2x3的二维数组 int matrix[2][3] = { {1, 2, 3}, {4, 5, 6} }; // 访问第二行第一列的元素 int element = matrix[1][0]; // 值为4 </syntaxhighlight> ==== Python ==== <syntaxhighlight lang="python"> # Python中使用嵌套列表模拟二维数组 matrix = [ [1, 2, 3], [4, 5, 6] ] # 访问第二行第一列的元素 element = matrix[1][0] # 值为4 </syntaxhighlight> === 内存表示 === 多维数组在内存中仍然以线性方式存储。例如,一个2x3的二维数组在内存中的布局如下(按行优先): <mermaid> graph LR A[0,0:1] --> B[0,1:2] --> C[0,2:3] --> D[1,0:4] --> E[1,1:5] --> F[1,2:6] </mermaid> 数学上,二维数组可以表示为矩阵: <math> \begin{bmatrix} 1 & 2 & 3 \\ 4 & 5 & 6 \end{bmatrix} </math> === 常见操作 === * '''遍历多维数组''':通常使用嵌套循环。 * '''矩阵运算''':如加法、乘法等。 ==== 遍历示例(Python) ==== <syntaxhighlight lang="python"> matrix = [ [1, 2, 3], [4, 5, 6] ] for row in matrix: for element in row: print(element, end=" ") print() # 换行 </syntaxhighlight> 输出: <pre> 1 2 3 4 5 6 </pre> == 实际应用案例 == === 一维数组应用:统计成绩 === 假设需要统计一个班级的学生成绩并计算平均分: <syntaxhighlight lang="python"> scores = [85, 90, 78, 92, 88] average = sum(scores) / len(scores) print(f"平均分: {average}") </syntaxhighlight> 输出: <pre> 平均分: 86.6 </pre> === 多维数组应用:图像处理 === 在图像处理中,图像可以表示为一个三维数组(高度×宽度×颜色通道): <syntaxhighlight lang="python"> # 假设一个2x2的RGB图像 image = [ [[255, 0, 0], [0, 255, 0]], # 第一行:红色和绿色像素 [[0, 0, 255], [255, 255, 0]] # 第二行:蓝色和黄色像素 ] # 访问左上角像素的红色通道 red_value = image[0][0][0] # 值为255 </syntaxhighlight> == 总结 == * '''一维数组'''是线性数据结构,适合存储序列化数据。 * '''多维数组'''是嵌套结构,适合表示表格、矩阵等数据。 * 数组的优点是'''随机访问速度快'''(O(1)时间复杂度),但插入/删除效率较低(O(n)时间复杂度)。 * 在实际编程中,数组是构建更复杂数据结构(如堆、哈希表)的基础。 通过掌握数组的基本操作和应用场景,可以为学习更高级的数据结构和算法打下坚实基础。 [[Category:计算机科学]] [[Category:数据结构与算法]] [[Category:线性数据结构]]
摘要:
请注意,所有对代码酷的贡献均被视为依照知识共享署名-非商业性使用-相同方式共享发表(详情请见
代码酷:著作权
)。如果您不希望您的文字作品被随意编辑和分发传播,请不要在此提交。
您同时也向我们承诺,您提交的内容为您自己所创作,或是复制自公共领域或类似自由来源。
未经许可,请勿提交受著作权保护的作品!
取消
编辑帮助
(在新窗口中打开)