CTEC快速排序算法的缺点缺点-西安交通大学计算机教学实验中心
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
总结
CTEC
排序问题
问题:
排序是计算机内经常进行的一种操作,其目的是将 一组“无序”的记录序列调整为“有序”的记录序列。排 序问题的过程就是一个逐步扩大记录的有序序列长度的过 程。
CTEC 一般的解决方案案
冒泡排序的解决方案
依次比较相邻的两个数,将小数放在前面,大数放在后
面。经过第一趟结束,将最大的数放到了最后。接着上面的 方法向下,如此下去,重复以上过程,直至最终完成排序, 这个过程相当于气泡往上升,所以称作冒泡排序。
任务1 任务3
任务2
CTEC 并行举例
例1:
设想一个人在挖一条10英尺长的壕沟。如果10个人每人 挖一英尺,该任务就可以以几乎快10倍的速度完成。然而,
相同的策略不能应用到挖一条10英尺深的壕沟——直到第一
个1英尺完成后才能进行第二个1英尺。
例2:
虽然一名女子可以怀胎十个月,但不能加快这个过程:
十名妇女共同怀一个孩子1个月。
如这样的步骤,每一步归并时交给不同的处理机完成,这
样就能完成归并排序的并行化。
算法优点:
他解决了快速排序的负载不平衡的问题,有较大的实用性
CTEC 总结上面的问题
总结:
通过上面排序的问题,可以看出并行算法的优势以及在并 行过程中出现的问题。
优势:
可以很大程度上提高计算机的性能,并且可以在短时间 内提高计算机的性价比。因为花在一台电脑上的大部分钱是用 来买显示器,键盘,机箱,电源,光驱……甚至是电脑桌。与 这些比起来,该处理器芯片确实是非常便宜了,不会太多地影 响电脑的价格。
CTEC 并行算法的问题
并行的问题:
1:在排序过程中可能出现负载不平衡的现象,就是快
速排序并行化后的表现,是个别的计算机大量的工作而其 他闲置。 2:并行算法并不是针对所有问题的,很多问题并不能 分解,也就不能并行化,即冒泡排序的方法就不能并行化 ,能够使用并行处理的问题还是少数。
CTEC 并行能解决什么问题
6台能不能继续提高计算的时间?
回答是否定的,因为针对上面一个计算图来说它的图的宽 度就决定了并行所用计算机的数量,而图的关键路径就是执行 这个算法所完成的时间。
CTEC 快速排序算法的并行化
快速排序算法的并行化:
先进行分区操作,然后将分区后的两个区间各用两个线
程进行排序,并且继续将区间分区时,具体的流程如下: 第一步:从数据49 38 65 97 76 13 27 49 中把49插入 中间的位置,能够把数据集分成两项,前半部分小于49,后 半部分大于49,然后把处理好的数据集分成两台处理机,分 别工作。 第二步:每个处理机按照第一步的步骤继续的操作,直
算法的效率
如果用它完成6个点的排序的话需要14个时间完成。
CTEC
本文的解决方案
本文解决方案:
首先在一块地面上用任何的一种方式获取如下图的一种 形式,然后让带有标号的学生按照这样一种规则取去走,当 道圆点处时标号小的往上走,大的往下走,当完所有路径是 就完成了排序。
CTEC 内在机理
1、值和最小值:
CTEC 并行在计算思维中的作用
为什么引入并行思维:
计算机思维来自于对人类思维的模拟,而并行是人类是人 类社会一种非常有效的解决事情的方案,所以理所应当被引人
入计算机中,成为计算思维的一部分,而并行是提高计算机能
力的一种非常好的方法。
并行思维得作用:
掌握了并行这种计算思维我们可以对现实生活的问题更加
我们可以看出6个点的排序算法是三路同时执行的,算 法的思想为:最上面的一路点第一个点是与两个比较,第 二个是与下面两个点同时比较,而第三个是与下面4个点比 较,这样就用三次完成了一次冒泡排序所需要的第一级的 比较,从而得出最小值,最大值与最小值会一起出现。
CTEC 内在机理
2、次大值和次小值:
再出现最大值与最小值之后,把图进行化简,可以看成
四个数找到最大值和最小值,化简如下:即假设删除的为 最大值通过的点,删除之后移动节点的顺序,让它变为这 样的形式。 通过此图便可得出次大值与次小值。
CTEC 算法效率
算法的效率:
这个算法为排序的一种并行化的机制,可以看出这个 方法完成排序只需要5次的比较。
CTEC 方案扩展
方案扩展:
这个算法用并行计算机去实现需要3台的并行计算机去处 理这个问题,试想,可不可以有更多的计算机呢?4台,5台,
到把数据集排好序。
CTEC 快速排序算法的缺点
缺点:
由于每次分区得到的两个区间大小不相同,计算量存在很 大差距,因此它是负载不均衡的。由于负载不平衡,造成这种
排序的效率无法得到保证,与具体的数据有关,因此这种算法
的实用价值不大。
CTEC
归并排序算法的并行化
归并排序的并行化:
把数据看成N个有序的子序列,然后两两归并,两两归并,
高效地进行处理,并且有利于我们找到最优性价比来解决问题 。
CTEC 总结
通过对并行排序网的学习,基本了解并行思维的特点,为 以后对并行的深入学习奠定了基础。
CTEC
谢谢
不当之处请批评指正
哪些问题可以并行,那些不可以并行?
阻碍并行的最大的问题就是数据的问题,即下一段的程 序需要用上一段程序的数据,所以能并行的算法能够并行执行 的前提是两端程序之间没有共用数据,这样这两段任务就可以
并行处理,反之,这两段任务不能并行处理,如图:任务1和
任务2之间没有数据来往,可以并行,但是任务3由于需要任务 1和任务2的数据,所以不能和任务1和任务2一起处理。
CTEC
本PPT的材料改编自csunplugged.org项目
Putting computers to work-Algorithms
活动8 Beat the Clock
——排序网络
西安பைடு நூலகம்通大学
高效能建模与仿真研究小组 2011年10
CTEC
总体介绍
问题的提出 两种解决方案 其他排序算法的并行化 并行计算的适用范围 计算思维为什么要强调并行运算
可以交给不同的处理机完成,得到的序列在两两归并,直到把 序列办成有序的整体,具体的流程如下: 第一步:[49] [38] [65] [97] [76] [13] [27] 第二步:[38 49] [65 97] [13 76] [27] 第三步:[38 49 65 97] [13 27 76] 第四步:[13 27 38 49 65 76 97]