- 1、本文档共37页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
163双调排序网络显然.ppt
比较网络与RAM的区别 可执行操作不同: 比较网络只能进行比较, RAM则无此限制 执行方式不同: 比较网络中操作可按并行方式执行,即可以同时发生 RAM中各操作以串行方式执行,即一个操作紧接另一个操作 比较网络:是一个由线路互相联接着的比较器的集合。 具有n个输入的比较网络画成一个由n条水平线组成的图,比较器则垂直地与两条水平线相连接。 每个比较器的输入端或与网络的n条输入线路a1,a2,……,an中的一条相连,或与另一个比较器的输出端相连接。 每个比较器的输出端或与网络的n条输出线路b1,b2,……,bn中的一条相连,或与另一个比较器的输入端相连接。 排序网络是指对每个输入序列其输出序列均为单调递增(即b1?b2?…?bn)的一种比较网络。 图2中的比较网络是排序网络。 并非每个比较网络都是排序网络。 比较网络和过程 相似之处在于它指定如何进行比较 不同之处在于其实际规模决定于输入和输出的数目 实际是在描述比较网络的“家族”。 本章目标就是开发一个关于有效排序网络的家族排序程序SORTER。在家族SORTER中具有n个输入和n个输出的排序网络定义为SORTER[n]。 在寻找这样的SORTER之前, 首先应该明确如何去判断一个比较网络是否是排序网络。 排序网络是对每个输入序列,其输出序列均为单调递增的比较网络。 根据这一点,如果我们要判断一个有n个输入和n个输出的比较网络是排序网络,就必须测试n!种输入序列。 这个工作量是非常大的,是否有简单一些的判断方法呢? 0-1原则认为:如果对于属于集合{0,1}中的每个输入值(输入序列中的每个数是0或1),排序网络都能正确运行,则对任意的输入值,它也能正确运行。 引理1:如果比较网络把输入序列a=a1,a2,……,an转化为输出序列b= b1,b2,……,bn ,则对任意单调递增函数f(不一定严格单调递增),该网络把输入序列f(a)=f(a1), f(a2),……,f(an)转化为输出序列f(b)=f(b1),f(b2),……,f(bn) 。 证明:我们可以采用数学归纳法来证。对比较网络中比较器的个数m进行归纳。 ?(1)证明m=1时(即只有一个比较器的情况)引理1成立。 设这个比较器连接ai和aj。如果输入值为ai和aj,那么该 比较器上端输出为min(ai,aj),下端输出为max(ai,aj)。如果我们把f(ai)和f(aj)作为该比较器的输入,由图3 所示,则该比较器上端输出为min(f(ai),f(aj)),下端 输出max(f(ai),f(aj))。 由于f是单调递增函数,若ai ? aj ,则 f(ai)?f(aj)。因此我们有下列等式: min(f(ai),f(aj))=f(min(ai, aj)) max(f(ai),f(aj))=f(max(ai, aj)) 故当我们把f(ai)和f(aj)作为比较器的输入时,所得出的 值就是f(min(ai,aj))和f(max(ai,aj))。 所以在m=1时,引理1成立。 (2)假设当比较器的个数mk(k?2)时,引理1均成立。考虑m=k时的情况。 可把具有k个比较器的比较网络拆成两个比较网络。 前k-1个比较器构成一个比较网络S1,最后一个比较 器单独构成一个比较网络S2。 S1和S2中比较器的个数均小于k个。原来的比较器就 可以看作是S1和S2的串联,比较器S1的输出序列就是比 较器S2的输入序列。 不妨设输入序列a=a1,a2,……,an经过比较器S1后 成为序列c= c1,c2,……,cn,再把它作为输入序列经 过比较器S2,成为最终的输出序列b=b1,b2,……,bn。 由归纳假设知:若把f(a)=f(a1), f(a2),……,f(an)作为比较器S1的输入序列,输出即为 f(c)=f(c1), f(c2),……,f(cn);再把f(c)=f(c1), f(c2),……,f(cn)作为比较器S2的输入序列,得到最终 的输出序列为f(b)=f(b1),f(b2),……,f(bn)。 因此,引理1在m=k时亦成立。 综上所述,无论比较网络中有多少个比较器,引理1 均成立。 有了引理1作为基础,我们就可以证明0-1原则了。 16.2 0-1原则 0-1原则:如果一个具有n个输入的比较网络能够对所有可能存在的2n个0和1组成的序列进行正确的排序,则对所有任意数组成的序列,该比较网络也可能对其正确排序。 证明(反证法):假设这个比较网络能对所有0-1序列进行排序,但存在一个由任意数组成的序列,网络不能对该序列正确地排序。即存在一个输入序列,其中两个元素ai和aj满足aiaj ,但在输出序列中aj被排在ai之前。 定义一个单调递增函数f
文档评论(0)