算法
文章平均质量分 78
Owen William
这个作者很懒,什么都没留下…
展开
-
插入排序
1.说明 对于插入排序问题,我们要关心的是输入与输出,所以引入的排序问题: 1) 输入:n个数的一个序列(a1, a2, …,an). 2) 输出:输入序列的一个排序(a‘1, a‘1, …, a‘n),满足a‘1‘1‘1…‘n 循环不变式主要用来帮助我们理解算法的正确性。关于循环不变式,我们必须证明三条性质: 1) 初始化:循环的第一次迭代之前原创 2017-01-15 21:51:27 · 315 阅读 · 0 评论 -
设计算法之分治法
1. 分治法的思想 许多有用的算法在结构上是递归的:为了解决一个给定的问题,算法一次或多次递归地调用其自身以解决紧密相关的若干子问题。这些算法典型地遵循分治法的思想:将原先问题分解为几个规模较小但类似于原问题的子问题,递归地求解这些子问题,然后再合并这些问题的解来建立原问题的解。 2.分治法的步骤 分治模式在每层递归时都有三个步骤: 1) 分解:分解原问题为若干子问题,这些子原创 2017-01-17 22:27:20 · 1203 阅读 · 0 评论 -
设计算法之分治法(补充)
1.算法说明 在设计算法之分治法的博客中,笔者已经写出了一个分治算法,不过那个算法笔者用了个哨兵,L[n1 + 1] = ∞ 和R[n2 + 1]= ∞。现在,我们想要实现的是,不用这个哨兵,那么这个算法该么写呢?本次博文将会给出。 2.不用哨兵的分治算法 MERGE2(A,p,q,r) n1 = q – p + 1 n2 = r – q Let[1…n1+1] and R[1原创 2017-01-18 19:35:30 · 316 阅读 · 0 评论