mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-05 03:30:30 +08:00
build
This commit is contained in:
@@ -6,9 +6,7 @@ comments: true
|
||||
|
||||
「数组 Array」是一种将 **相同类型元素** 存储在 **连续内存空间** 的数据结构,将元素在数组中的位置称为元素的「索引 Index」。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 数组定义与存储方式 </p>
|
||||

|
||||
|
||||
!!! note
|
||||
|
||||
@@ -106,9 +104,7 @@ comments: true
|
||||
|
||||
**在数组中访问元素非常高效**。这是因为在数组中,计算元素的内存地址非常容易。给定数组首个元素的地址、和一个元素的索引,利用以下公式可以直接计算得到该元素的内存地址,从而直接访问此元素。
|
||||
|
||||

|
||||
|
||||
<p align="center"> Fig. 数组元素的内存地址计算 </p>
|
||||

|
||||
|
||||
```shell
|
||||
# 元素内存地址 = 数组内存地址 + 元素长度 * 元素索引
|
||||
@@ -407,7 +403,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
||||
|
||||
**数组中插入或删除元素效率低下**。如果我们想要在数组中间插入一个元素,由于数组元素在内存中是“紧挨着的”,它们之间没有空间再放任何数据。因此,我们不得不将此索引之后的所有元素都向后移动一位,然后再把元素赋值给该索引。
|
||||
|
||||

|
||||

|
||||
|
||||
=== "Java"
|
||||
|
||||
@@ -529,7 +525,7 @@ elementAddr = firtstElementAddr + elementLength * elementIndex
|
||||
|
||||
删除元素也是类似,如果我们想要删除索引 $i$ 处的元素,则需要把索引 $i$ 之后的元素都向前移动一位。值得注意的是,删除元素后,原先末尾的元素变得“无意义”了,我们无需特意去修改它。
|
||||
|
||||

|
||||

|
||||
|
||||
=== "Java"
|
||||
|
||||
|
||||
Reference in New Issue
Block a user