Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
OpenDocCN
programiz-zh
提交
9fe449aa
P
programiz-zh
项目概览
OpenDocCN
/
programiz-zh
9 个月 前同步成功
通知
0
Star
48
Fork
7
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
P
programiz-zh
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
9fe449aa
编写于
7月 06, 2020
作者:
W
wizardforcel
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
2020-07-06 23:18:50
上级
7b506386
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
8 addition
and
8 deletion
+8
-8
docs/dsal/56.md
docs/dsal/56.md
+7
-7
docs/dsal/61.md
docs/dsal/61.md
+1
-1
未找到文件。
docs/dsal/56.md
浏览文件 @
9fe449aa
...
...
@@ -27,7 +27,7 @@ Merge Sort example
在征服步骤中,我们尝试对两个子数组
`A[p..q]`
和
`A[q + 1..r]`
进行排序 。 如果尚未达到基本情况,则再次划分这两个子数组,然后尝试对它们进行排序。
**合并**
当征服步骤到达基本步骤时,我们得到
`A[p..r]`
数组的两个排序的子数组
`A[p..q]`
和
`A[q + 1..r]`
,我们通过从两个排序的子数组
`A[p]`
创建一个排序的数组
`A
[p..r]`
来组合结果
`A[p..q]`
和
`A
[q + 1..r]`
。
当征服步骤到达基本步骤时,我们得到
`A[p..r]`
数组的两个排序的子数组
`A[p..q]`
和
`A[q + 1..r]`
,我们通过从两个排序的子数组
`A[p]`
创建一个排序的数组
`A
[p..r]`
来组合结果
`A[p..q]`
和
`A
[q + 1..r]`
。
* * *
...
...
@@ -89,17 +89,17 @@ Merge step
这就是为什么我们只需要数组,第一个位置,第一个子数组的最后一个索引(我们可以计算第二个子数组的第一个索引)和第二个子数组的最后一个索引的原因。
我们的任务是合并两个子数组
`A
[p..q]`
和
`A [q + 1..r]`
,以创建排序数组
`A [p..r
]`
。 因此,函数的输入为
`A`
,
`p`
,
`q`
和
`r`
我们的任务是合并两个子数组
`A
[p..q]`
和
`A[q + 1..r]`
,以创建排序数组
`A[p..r
]`
。 因此,函数的输入为
`A`
,
`p`
,
`q`
和
`r`
合并功能的工作方式如下:
1.
创建子数组
`L ← A[p..q]`
和
`M←A
[q + 1..r]`
的副本。
1.
创建子数组
`L ← A[p..q]`
和
`M←A[q + 1..r]`
的副本。
2.
创建三个指针
`i`
,
`j`
和
`k`
1.
`i`
维持
`L`
的当前索引,从 1 开始
2.
`j`
维持
`M`
的当前索引,从 1 开始
3.
`k`
维持
`A
[p..q]`
的当前索引,从
`p`
开始。
3.
直到我们到达
`L`
或
`M`
的末尾,再从
`L`
和
`M`
中选择较大的元素,然后将它们放在
`A
[p..q]`
的正确位置
4.
当我们用尽
`L`
或
`M`
中的元素时,请拾取其余元素,然后放入
`A
[p..q]`
3.
`k`
维持
`A[p..q]`
的当前索引,从
`p`
开始。
3.
直到我们到达
`L`
或
`M`
的末尾,再从
`L`
和
`M`
中选择较大的元素,然后将它们放在
`A[p..q]`
的正确位置
4.
当我们用尽
`L`
或
`M`
中的元素时,请拾取其余元素,然后放入
`A[p..q]`
在代码中,这看起来像:
...
...
@@ -271,7 +271,7 @@ Copy remaining elements of second array to main subarray
如果
`M`
的大小大于
`L`
,则需要此步骤。
在合并功能的末尾,对子数组
`A
[p..r]`
进行排序。
在合并功能的末尾,对子数组
`A[p..r]`
进行排序。
* * *
...
...
docs/dsal/61.md
浏览文件 @
9fe449aa
...
...
@@ -99,7 +99,7 @@ Max Heap and Min Heap
```
heapify(array)
Root = array[0]
Largest = largest( array[0] , array
[2*0 + 1]. array[2*0+2])
Largest = largest( array[0] , array[2*0 + 1]. array[2*0+2])
if(Root != Largest)
Swap(Root, Largest)
```
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录