mirror of
https://github.com/krahets/hello-algo.git
synced 2026-04-05 11:41:22 +08:00
Finetune the articles.
This commit is contained in:
@@ -44,7 +44,7 @@
|
||||
=== "Java"
|
||||
|
||||
```java title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
int[] numbers = new int[5];
|
||||
float[] decimals = new float[5];
|
||||
char[] characters = new char[5];
|
||||
@@ -54,7 +54,7 @@
|
||||
=== "C++"
|
||||
|
||||
```cpp title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
int numbers[5];
|
||||
float decimals[5];
|
||||
char characters[5];
|
||||
@@ -81,14 +81,14 @@
|
||||
=== "JavaScript"
|
||||
|
||||
```javascript title=""
|
||||
/* JavaScript 的数组可以自由存储各种基本数据类型和对象 */
|
||||
// JavaScript 的数组可以自由存储各种基本数据类型和对象
|
||||
const array = [0, 0.0, 'a', false];
|
||||
```
|
||||
|
||||
=== "TypeScript"
|
||||
|
||||
```typescript title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
const numbers: number[] = [];
|
||||
const characters: string[] = [];
|
||||
const booleans: boolean[] = [];
|
||||
@@ -97,7 +97,7 @@
|
||||
=== "C"
|
||||
|
||||
```c title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
int numbers[10];
|
||||
float decimals[10];
|
||||
char characters[10];
|
||||
@@ -107,7 +107,7 @@
|
||||
=== "C#"
|
||||
|
||||
```csharp title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
int[] numbers = new int[5];
|
||||
float[] decimals = new float[5];
|
||||
char[] characters = new char[5];
|
||||
@@ -117,7 +117,7 @@
|
||||
=== "Swift"
|
||||
|
||||
```swift title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
let numbers = Array(repeating: Int(), count: 5)
|
||||
let decimals = Array(repeating: Double(), count: 5)
|
||||
let characters = Array(repeating: Character("a"), count: 5)
|
||||
@@ -133,7 +133,7 @@
|
||||
=== "Dart"
|
||||
|
||||
```dart title=""
|
||||
/* 使用多种「基本数据类型」来初始化「数组」 */
|
||||
// 使用多种基本数据类型来初始化数组
|
||||
List<int> numbers = List.filled(5, 0);
|
||||
List<double> decimals = List.filled(5, 0.0);
|
||||
List<String> characters = List.filled(5, 'a');
|
||||
|
||||
@@ -6,16 +6,22 @@
|
||||
|
||||
**「逻辑结构」揭示了数据元素之间的逻辑关系**。在数组和链表中,数据按照顺序依次排列,体现了数据之间的线性关系;而在树中,数据从顶部向下按层次排列,表现出祖先与后代之间的派生关系;图则由节点和边构成,反映了复杂的网络关系。
|
||||
|
||||
逻辑结构通常分为「线性」和「非线性」两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线性结构则相反,呈非线性排列,例如网状或树状结构。
|
||||
逻辑结构通常分为“线性”和“非线性”两类。线性结构比较直观,指数据在逻辑关系上呈线性排列;非线性结构则相反,呈非线性排列。
|
||||
|
||||
- **线性数据结构**:数组、链表、栈、队列、哈希表;
|
||||
- **非线性数据结构**:树、图、堆、哈希表;
|
||||
- **非线性数据结构**:树、堆、图、哈希表;
|
||||
|
||||

|
||||
|
||||
非线性数据结构可以进一步被划分为树形结构和网状结构。
|
||||
|
||||
- **线性结构**:数组、链表、队列、栈、哈希表,元素存在一对一的顺序关系;
|
||||
- **树形结构**:树、堆、哈希表,元素存在一对多的关系;
|
||||
- **网状结构**:图,元素存在多对多的关系;
|
||||
|
||||
## 物理结构:连续与离散
|
||||
|
||||
在计算机中,内存和硬盘是两种主要的存储硬件设备。「硬盘」主要用于长期存储数据,容量较大(通常可达到 TB 级别)、速度较慢。「内存」用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。
|
||||
在计算机中,内存和硬盘是两种主要的存储硬件设备。硬盘主要用于长期存储数据,容量较大(通常可达到 TB 级别)、速度较慢。内存用于运行程序时暂存数据,速度较快,但容量较小(通常为 GB 级别)。
|
||||
|
||||
**在算法运行过程中,相关数据都存储在内存中**。下图展示了一个计算机内存条,其中每个黑色方块都包含一块内存空间。我们可以将内存想象成一个巨大的 Excel 表格,其中每个单元格都可以存储 1 byte 的数据,在算法运行时,所有数据都被存储在这些单元格中。
|
||||
|
||||
@@ -34,7 +40,7 @@
|
||||
- **基于数组可实现**:栈、队列、哈希表、树、堆、图、矩阵、张量(维度 $\geq 3$ 的数组)等;
|
||||
- **基于链表可实现**:栈、队列、哈希表、树、堆、图等;
|
||||
|
||||
基于数组实现的数据结构也被称为「静态数据结构」,这意味着此类数据结构在初始化后长度不可变。相对应地,基于链表实现的数据结构被称为「动态数据结构」,这类数据结构在初始化后,仍可以在程序运行过程中对其长度进行调整。
|
||||
基于数组实现的数据结构也被称为“静态数据结构”,这意味着此类数据结构在初始化后长度不可变。相对应地,基于链表实现的数据结构被称为“动态数据结构”,这类数据结构在初始化后,仍可以在程序运行过程中对其长度进行调整。
|
||||
|
||||
!!! tip
|
||||
|
||||
|
||||
Reference in New Issue
Block a user