分享到:

并行归并排序算法及其在PC集群中的实现

现代许多领域中具有挑战性的大规模计算课题需要高性能并行处理机,而硬件技术的迅速发展已使建造并行处理机的新一代计算机的经济可行性显著增加,但是阻碍并行处理机进入主流技术的主要问题还是在软件和应用方面。但是并行算法设计有着特殊的困难。以前我们考虑问题是按时间的顺序来考虑,而现在我们却要把整个问题看作由多个可并行的子问题组成。大型计算中心,排序被认为占用了大量的计算时间。随着并行处理技术的发展,并行排序已经成为并行算法中的一个重要的研究领域。本文提出了并详细描述了一种新的并行归并排序算法,算法充分利用了各个处理器排序后序列长度相等的特点,计算出归并段对中的一个元素和最后一个元素的位置,然后从相应的位置进行归并排序。本算法达到了较高的负载平衡性、可扩展性和排序稳定性,而且排序后,数据分布完全平衡。现在PC机的性能不断的提高,价格下降,很好的性能价格比使很多单位普遍使用PC集群。因此,研究PC机组成的网络并行计算平台,并在其上进行并行计算  (本文共63页) 本文目录 | 阅读全文>>

《电脑知识与技术》2005年11期
电脑知识与技术

链表递增归并排序算法

1归并排序算法及其在SunJDKCollec鄄tion库中的应用归并就是是将两个或两个以上的有序表组合成一个新的有序表,最简单2-路归并排序算法如下图:这是一种自底向上的方式。假设初始序列含有n个记录,2-路归并算法把序列中的每一个记录看成一个已排序的长度为1的子序列,这些子序列两两归并得到┌n/2┐个长度为1或2的有序子序列;再两两归并...,直到得到长度为n的有序序列,每一趟归并的时间复杂度为O(n),需要进行┌log2n┐趟归并,整个排序过程的时间复杂度为O(nlogn),可以看出,这是稳定的排序算法。自底向上的方式形式上很直观,但实际应用的排序算法很少按这种形式实现,而是采用递归形式实现,递归是一种从上到下的方式。假设初始序列中含有n个记录,从中间分隔,当作是两个长度为相加为n的无序序列,各自递归调用归并排序(如果分割后的子序列长度为1,则认为是已排序序列),然后再合并为长度为n的有序序列。其执行过程如下图:图2:递归归...  (本文共4页) 阅读全文>>

《渤海大学学报(自然科学版)》2009年02期
渤海大学学报(自然科学版)

一种改进的归并排序算法

O引言排序主要分为两大类,一类为内部排序,一类为外部排序。每种内部排序方法都有其存在的价值,有其较为适用的场合。有的排序方法比较简单、有的排序方法时间效率较高、有的排序方法空间效率较好、有的排序方法较为适合于处理大批量的数据等等。衡量一个算法好坏的重要标志是算法的时空性能,即,时间复杂性和空间复杂性。目前的排序算法,针对平均的时空性能而言,最好的时间性能是0(n logZn),最坏的时间性能是O(n,);最好的空间性能是O(1),最坏的空间性能是O(n).因此,研究一个排序方法,不仅要关注它的算法简单性,还要注重其时空性能,这是影响依据算法所编制的程序运行速度和质量的重要标志。1归并排序算法归并排序算法是对n条记录的关键字不断地进行分组合并,最终合并成一个有序序列的一种排序方法。即在排序过程中先对整个记录集进行折半分组(因此,该排序方法也称为2路归并排序),对每个分组如此进行下去,直到找到两个有序序列后,再开始进行合并,如此反复...  (本文共3页) 阅读全文>>

《计算机工程与应用》1984年12期
计算机工程与应用

一种节省内存容量的归并排序算法——上拉下插法

一、问题的提出 在数据库软件设计中,一般都采用归并排序(或称分类)作为外排序的一种方法。无论采用哪一种归并方案,在归并过程中,一般都需要有二个初始归并段长度之和的外加内存空间,用作存放结果归并段。为讨论问题简单起见,假定每个初始归并段的长度为n个记录。并采用二路归并方法,则在内存中必须有能容纳ZN个记录的空间(用来存放二个初始段记录)作为输人缓冲区。还要一个能容纳ZN记录的空间作为输出缓冲区(附加的内存空间)。为了对二个初始段作二路归并,在内存中必须空出能容纳4万记录的空间。 现在的向题是能不能省掉这个输出缓冲区?也就是说,能不能不要这个额外的附加空间,就能进行归并? 如能做到这点是有意义的。因为明显地节省了一半的内存空间。如果内存最多只能提供4N记录空间,则可将初始段扩大到ZN个记录,以减1/0时间。如果内存只能提供ZN记录空间,长度为N个记录的初始段仍能进行归并。尤其在当前推广微机应用中,是有积极意义的,因为微机的内存容量只...  (本文共2页) 阅读全文>>

《计算机工程与应用》2005年05期
计算机工程与应用

一种新的并行归并排序算法

据统计,在大型计算中心,仅排序工作往往就要占去大约 择第一个和最后一个元素播发给编号为 p/2~p-1 ( )的处理机;1/4的计算时间犤1犦。对排序算法的研究无论是在理论上还是在 同时,编号从 p/2到( )的处理机从自身的有序队列中选择 p-1实践上都具有重大的意义。随着并行处理技术的发展,并行排序 第一个和最后一个元素播发给编号为 0~p/2-1 ( )的处理机;已经成为并行算法中的一个重要研究领域,目前已有大量关于对 ()收到相应处理机发来的 p 个数据后,通过顺序查找的 ...  (本文共3页) 阅读全文>>

《计算机研究与发展》1990年40期
计算机研究与发展

一种新的多路归并排序网络

1引言排序是一项既有理论价值又有实际意义的课题.据统计,计算机所完成的所有工作中有25%~50%涉及到数据的排序.例如,在关系数据库和操作系统中,分布式及并行排序算法起着关键的作用.随着计算机体系结构和大规模集成电路技术的不断发展,对并行排序算法的研究越来越受到人们的重视.并行排序算法可以在不同的拓扑结构连接起来的计算机网络上实现[1~3],也可以用专门的硬件排序网络实现,排序网络有时简称为排序器.寻找快速的排序算法、构造高速的排序网络是计算机领域的重要研究课题之一.采用归并的方法进行排序是研究并行排序的重要组成部分.所谓归并是指将多个有序序列组织成一个有序序列.长期以来,人们对归并算法的研究一直以两路(2-way)归并为主,如Batcher提出的“奇偶归并”与“双调归并”[4,5].在两路归并的基础上,人们也对多路归并进行了广泛的研究[6~8].文献[6]给出了一种k路归并网络,该归并网络是一个递归过程:对大小为1的序列进行k...  (本文共6页) 阅读全文>>