diff --git a/.obsidian/workspace b/.obsidian/workspace index 58afc332..502f0f0f 100644 --- a/.obsidian/workspace +++ b/.obsidian/workspace @@ -7,8 +7,13 @@ "id": "742c808ba884e60f", "type": "leaf", "state": { - "type": "empty", - "state": {} + "type": "markdown", + "state": { + "file": "wiki/algo/概述/算法.md", + "mode": "source", + "backlinks": false, + "source": false + } } } ], @@ -92,7 +97,9 @@ "type": "leaf", "state": { "type": "outline", - "state": {} + "state": { + "file": "wiki/algo/概述/算法.md" + } } }, { @@ -111,23 +118,24 @@ "state": {} } } - ] + ], + "currentTab": 4 } ], "direction": "horizontal", "width": 238.5 }, - "active": "73ad29197a6e1773", + "active": "ed729260027c7607", "lastOpenFiles": [ + "wiki/algo/概述/数据结构.md", + "wiki/algo/概述/算法.md", + "templates/文档 - 完全模板.md", + "templates/文档 - 快速模板.md", + "wiki/algo/常见算法.md", + "templates/日志 - 季度模板.md", "blog/写十万字的博客是一种什么感觉.md", "blog/未命名.md", "templates/博客 - 快速模板.md", - "templates/文档 - 快速模板.md", - "templates/文档 - 完全模板.md", - "templates/日志 - 周记模板.md", - "templates/日志 - 日记模板.md", - "templates/日志 - 季度模板.md", - "templates/博客 - 完全模板.md", - "未命名.md" + "templates/日志 - 周记模板.md" ] } \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 4567394a..bdba2054 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -244,7 +244,7 @@ const config = { to: "/dev", }, { - label: "逻辑算法", + label: "算法逻辑", to: "/algo", }, { diff --git a/templates/文档 - 完全模板.md b/templates/文档 - 完全模板.md index fb7974e0..024614bb 100644 --- a/templates/文档 - 完全模板.md +++ b/templates/文档 - 完全模板.md @@ -14,16 +14,15 @@ pagination_prev: string | null | 「上篇文档」按钮链接到的文档 ID parse_number_prefixes: boolean | 是否禁用本文档的数字前缀解析。 另见[使用数字前缀] custom_edit_url: string | 编辑此文档时要跳转到的 URL。 keywords: - - 用于搜索引擎优化的文档关键词元标签。 +- 用于搜索引擎优化的文档关键词元标签。 description: string | 文档的描述信息 image: string | 显示文档链接时所用的缩略图或封面。 slug: string | 自定义文档的 URL tags: - - 文档标签 +- 文档标签 draft: boolean | 表明文档处于未完成状态 -last_update: - date: 1/1/2000 - author: 自定义作者名 +date: 1/1/2000 +author: 自定义作者名 --- 一篇文档 - 完全模板 \ No newline at end of file diff --git a/templates/文档 - 快速模板.md b/templates/文档 - 快速模板.md index 51973037..146507cc 100644 --- a/templates/文档 - 快速模板.md +++ b/templates/文档 - 快速模板.md @@ -2,12 +2,11 @@ title: 标题 description: 描述 keywords: - - 关键字 +- 关键字 tags: - - 标签 -last_update: - author: 7Wate - date: <% tp.date.now("YYYY-MM-DD") %> +- 标签 +author: 7Wate +date: <% tp.date.now("YYYY-MM-DD") %> --- 一篇文档 - 快速模板 \ No newline at end of file diff --git a/wiki/algo/常见算法.md b/wiki/algo/常见算法.md deleted file mode 100644 index 5b0036ea..00000000 --- a/wiki/algo/常见算法.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -id: 常见代码 -title: 常见代码 -sidebar_position: 3 -data: 2022年1月27日 ---- -## 九九乘法表 - -```python -""" -输出乘法口诀表(九九表) - -Version: 0.1 -Author: 骆昊 -""" - -for i in range(1, 10): - for j in range(1, i + 1): - print('%d*%d=%d' % (i, j, i * j), end='\t') - print() -``` - -## 判断是不是素数 - -```python -""" -输入一个正整数判断它是不是素数 - -Version: 0.1 -Author: 骆昊 -Date: 2018-03-01 -""" -from math import sqrt - -num = int(input('请输入一个正整数: ')) -end = int(sqrt(num)) -is_prime = True -for x in range(2, end + 1): - if num % x == 0: - is_prime = False - break -if is_prime and num != 1: - print('%d是素数' % num) -else: - print('%d不是素数' % num) -``` - -## 打印三角形图案 - -```python -* -** -*** -**** -***** -``` - -```python - * - ** - *** - **** -***** -``` - -```python - * - *** - ***** - ******* -********* -``` - -```python -""" -打印三角形图案 - -Version: 0.1 -Author: 骆昊 -""" - -row = int(input('请输入行数: ')) -for i in range(row): - for _ in range(i + 1): - print('*', end='') - print() - - -for i in range(row): - for j in range(row): - if j < row - i - 1: - print(' ', end='') - else: - print('*', end='') - print() - -for i in range(row): - for _ in range(row - i - 1): - print(' ', end='') - for _ in range(2 * i + 1): - print('*', end='') - print() -``` - -## 寻找水仙花数 - -```python -""" -找出所有水仙花数 - -Version: 0.1 -Author: 骆昊 -""" - -for num in range(100, 1000): - low = num % 10 - mid = num // 10 % 10 - high = num // 100 - if num == low ** 3 + mid ** 3 + high ** 3: - print(num) -``` - -## 数字反转 - -```python -""" -正整数的反转 - -Version: 0.1 -Author: 骆昊 -""" - -num = int(input('num = ')) -reversed_num = 0 -while num > 0: - reversed_num = reversed_num * 10 + num % 10 - num //= 10 -print(reversed_num) -``` - -## 百钱百鸡 - -```python -""" -《百钱百鸡》问题 - -Version: 0.1 -Author: 骆昊 -""" - -for x in range(0, 20): - for y in range(0, 33): - z = 100 - x - y - if 5 * x + 3 * y + z / 3 == 100: - print('公鸡: %d只, 母鸡: %d只, 小鸡: %d只' % (x, y, z)) -``` - -## CRAPS赌博游戏 - -```python -""" -Craps赌博游戏 -我们设定玩家开始游戏时有1000元的赌注 -游戏结束的条件是玩家输光所有的赌注 - -Version: 0.1 -Author: 骆昊 -""" -from random import randint - -money = 1000 -while money > 0: - print('你的总资产为:', money) - needs_go_on = False - while True: - debt = int(input('请下注: ')) - if 0 < debt <= money: - break - first = randint(1, 6) + randint(1, 6) - print('玩家摇出了%d点' % first) - if first == 7 or first == 11: - print('玩家胜!') - money += debt - elif first == 2 or first == 3 or first == 12: - print('庄家胜!') - money -= debt - else: - needs_go_on = True - while needs_go_on: - needs_go_on = False - current = randint(1, 6) + randint(1, 6) - print('玩家摇出了%d点' % current) - if current == 7: - print('庄家胜') - money -= debt - elif current == first: - print('玩家胜') - money += debt - else: - needs_go_on = True -print('你破产了, 游戏结束!') -``` diff --git a/wiki/algo/概述/数据结构.md b/wiki/algo/概述/数据结构.md new file mode 100644 index 00000000..124ea66d --- /dev/null +++ b/wiki/algo/概述/数据结构.md @@ -0,0 +1,73 @@ +--- +title: 数据结构 +description: 数据结构的定义 +keywords: +- 数据结构 +- 抽象数据类型 +tags: +- 数据结构 +author: 7Wate +date: 2022-08-25 +--- +## 概述 +数据结构是相互之间存在**一种或多种特定关系**的数据元素的集合。 +## 数据 +数据是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。 + +**数据项 > 数据元素 >> 数据对象:数据项构成了数据元素,数据元素组合成了数据对象。** + +## 结构 +结构是不同数据元素之间不是独立的,而是存在特定的关系。 +### 逻辑结构 +逻辑结构是指**数据对象 中 数据元素**之间的相互关系。 + +- 集合:集合结构中的数据元素除了属于一个集合外,它们之间**没有其他关系**。 +- 线性:线性结构中的数据元素之间是**一对一的关系**。 +- 树形:树形结构中的数据元素之间存在一种**多对多的层次关系**。 +- 图形:图形结构的数据元素是**多对多的关系**。 + +### 物理结构 + +物理结构是指数据的逻辑结构在计算机中的存储形式。 + +#### 顺序存储 + +顺序存储结构是把数据元素放在地址连续的存储单元里,其数据间的逻辑关系和物理关系是一致的。 + +#### 链式存储 + +链式存储结构是把数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的。 + +## 数据类型 + +数据类型是指一组**性质相同的值的集合**以及定义在此**集合上的一些操作**的总称。 + +### 定义 + +- 相同数据对象集合(例如整数 > 整数型,字符 > 字符型)。 +- 集合相关联的操作(整数可以加减,字符可以拼接)。 + +### 分类 + +- 原子类型(字节型、数值型、字符串型)。 +- 结构类型(原子类型的组合)。 + +## 抽象数据类型 + +抽象数据类型(Abstract Data Type,ADT)是指一个数学模型及其定义在该模型上的一组操作。 + +```markdown +ADT 抽象数据类型名 +Data + 数据元素之间逻辑关系的定义 +Operation + 操作1 + 初始条件 + 操作结果描述 + 操作2 + ………… + 操作n + ………… +endADT +``` +