一,比较网络
1)组成:线路和比较器
2)比较网络含义:就是一个由线路互相联接着的比较器的集合,我们把具有n个输入的比较网络画成一个由n条水平线组成的图,比较器则垂直地与两条水平线相连接。每个比较器的输入端要么与网络的n条输入线路a1,a2,……,an中的一条相连,要么与另一个比较器的输出端相连接。类似地,每个比较器的输出端要么与网络的n条输出线路b1,b2,……,bn中的一条相连,要么与另一个比较器的输入端相连接。互相连接的比较器主要应满足如下要求:其互相连接所成的图中必须没有回路。
只有当同时有两个输入时,比较器才能产生输出值。
在每个比较器均运行单位时间的假设下,我们可以对比较网络的“运行时间”作出定义,这就是从输入线路接收到其值的时刻到所有输出线路收到其值所花费的时间。
3)比较网络示意图
4)排序网络:对每个输入序列其输出序列均为单调递增(即b1<=b2<=…<=bn)的一种比较网络
5)0-1原则:如果一个具有n个输入的比较网络,能够对所有可能存在的2^n个0和1组成的序列进行正确的排序,则对所有任意数组成的序列,该比较网络也可能对其正确排序。
6)双调序列:序列要么先单调递增然后再单调递减,要么先单调递减然后又单调递增。例如序列<1,4,6,8,3,2>和<9,8,3,2,4,6>都是双调的
二,双调排序网络
1)双调排序程序由log2n个阶段组成,其中每一个阶段称为一个半清洁器。每个半清洁器是一个深度为1的比较网络,其中输入线I与输入线I+n/2进行比较,I=1,2,…,n/2(这里假设n为偶数)。图4即为一个具有8个输入和8个输出的半清洁器。
当由0和1组成的双调序列用作半清洁器的输入时,半清洁器产生的输出序列满足如下条件:
1>较小的值位于输出的上半部,较大的值位于输出的下半部。
2>两部分序列仍是双调的。
3>两部分序列中至少有一个是清洁的——全由0或1组成。(它的名称也是由此而来)
2)双调排序网络生成过程
通过递归地连接半清洁器,我们可以建立一个双调排序网络。双调排序网络[n]的第一阶段由半清洁器[n]组成,由定理1可知半清洁器[n]产生两个规模缩小一半的双调序列且满足上半部分的每个元素不比下半部分的任一个元素大。因此,我们可以运用两个双调排序网络[n/2]分别对两部分递归地进行排序,以此完成整个排序工作
我们只要把含n个元素的双调排序网络的第一个半清洁器修改一下就可以得到合并网络MERGER[n]。由于输入的上半部和下半部都是单调递增的,所以我们把比较网络的下半部分颠倒一下,输入就成了一个双调序列。添上半清洁器,再颠倒回去,半清洁器就变成了把输入ai和an-i+1比较。这时,输出也被颠倒了。但是,一个双调序列颠倒了以后还是一个双调序列。
分享到:
相关推荐
第二十七章 排序网络(Sorting Networks) 第二十八章 矩阵运算(Matrix Operations) 第二十九章 线性规划(Linear Programming) 第三十章 多项式与快速傅里叶变换(Polynomials and the FFT) 第三十一...
《算法导论》是计算机科学领域的一本经典著作,它深入浅出地介绍了各种重要的算法,并配以详尽的分析和实例。这份压缩包文件包含了该书第1至16章的部分编程题目的Java实现,对于学习算法和提高编程技能来说,是一个...
《算法导论》是计算机科学领域的一本经典著作,它深入浅出地介绍了算法的设计、分析和实现。这本书覆盖了广泛的算法主题,包括排序、搜索、图算法、动态规划等,是许多大学计算机科学课程的核心教材。提供的资源包含...
第27章 排序网络 第28章 矩阵运算 第29章 线性规划 第30章 多项式与快速傅里叶变换 第31章 有关数论的算法 第32章 字符串匹配 第33章 计算几何学 第34章 NP完全性 第35章 近似算法 第八部分 附录:数学基础知识 引言...
本压缩包文件包含了《算法导论》第二版的中文版课后习题答案,这对于正在学习这本书的读者来说是一份极其宝贵的参考资料。通过这些答案,读者可以检验自己的解题思路,对比专业的解答,从而更好地掌握书中的算法思想...
第27章 排序网络 第28章 矩阵运算 第29章 线性规划 第30章 多项式与快速傅里叶变换 第31章 有关数论的算法 第32章 字符串匹配 第33章 计算几何学 第34章 NP完全性 第35章 近似算法 第八部分 附录:数学基础知识 引言 ...
《算法导论第三版总结与练习思考题答案》是一份由Thomas H. Cormen、Clara Lee和Erica Lin编写的教师手册,旨在为《算法导论》第二版提供详尽的教学辅助材料。该手册涵盖了从算法的基础概念到高级主题的广泛范围,...
第二十七章 排序网络(Sorting Networks) 第二十八章矩阵运算(Matrix Operations) 第二十九章 线性规划(Linear Programming) 第三十章 多项式与快速傅里叶变换(Polynomials and the FFT) 第三十一章 ...
第二十七章 排序网络(Sorting Networks) 第二十八章矩阵运算(Matrix Operations) 第二十九章 线性规划(Linear Programming) 第三十章 多项式与快速傅里叶变换(Polynomials and the FFT) 第三十一章 数论算法...
例如,你可以从第4章开始,了解基本的排序和搜索算法,如冒泡排序、插入排序、二分查找等;然后逐渐进阶到第24章,探索高级数据结构如树和堆;再至第26章,学习图的表示和遍历方法;最后,可以挑战第31章和第35章的...
本资料为《算法导论》(第二版)一书的教师手册,提供了全书各章节课后习题的详细解答。该书由Thomas H. Cormen、Charles E. Leiserson、Ronald L. Rivest和Clifford Stein共同编写,是计算机科学领域内关于算法的...
- **第十七章:摊还分析**:探讨了如何评估一系列操作的整体效率,即使某些操作在单独考虑时效率较低。 综上所述,《算法导论第三版 教师版》涵盖了算法设计与分析的各个方面,是一本不可多得的经典教材。无论是...
**第二十一章:不相交集的数据结构(Data Structures for Disjoint Sets)** - **讲义(21-1)** - 讨论了用于表示不相交集的数据结构及其在并查集等问题中的应用。 - **解决方案(21-6)** - 分析了不相交集数据...
第27章 排序网络 第28章 矩阵运算 第29章 线性规划 第30章 多项式与快速傅里叶变换 第31章 有关数论的算法 第32章 字符串匹配 第33章 计算几何学 第34章 NP完全性 第35章 近似算法 第八部分 附录:数学基础知识 引言...
《算法导论教师手册》(CLRS)是与广受赞誉的教材《算法导论》第二版相配套的教学辅助资料,由Thomas H. Cormen、Clara Lee和Erica Lin共同编写,旨在为教授和学习算法的学生提供深入的指导和支持。这本手册包含了对...
第二部分 排序和顺序统计学 引言 第6章 堆排序 6.1 堆 6.2 保持堆的性质 6.3 建堆 6.4 堆排序算法 6.5 优先级队列 第7章 快速排序 7.1 快速排序的描述 7.2 快速排序的性能 7.3 快速排序的随机化...