1. 内排序与外排序:外排序需要利用辅助存储器件(硬盘等),内排序可以全部放入主存储器中。

  2. 基于比较的排序算法和不基于比较的排序算法:基于比较的排序算法时间复杂度最低为O(N * logN),基于非比较的排序算法的复杂度下界为O(N)。

  3. 输入输出序列分散存放在各个进程当中,枚举出全部进程,使用一个全局排序,如果进程Pi枚举值小于Pj,则排序完之后Pi存放的值全都小于Pj。

  4. 每个进程存放一个元素:

  5. 每个进程存放多个元素:使用比较分裂,每个进程将他的块发送给另一个进程,每个进程合并块之后只保留合并块的适当一部分。


排序网络

比较器(递增和递减):

双调排序
  1. 复杂度为O(logN * logN)

  2. 双调序列:循环移位之后是一个先增后减的序列

  3. 重排双调序列获得单调递增序列:

    s1取得的是最小值,s2取得的是最大值,所以两个序列包含的元素都不同,且合起来就是原始序列的所有元素。s1和s2的中介点是同一个(在该处s1变为递减,s2变为递增),且因为该处s2的取值大于s1,所以整个s2的值都大于s1。这样子就完成了将一个双调序列变成两个小的双调序列。


双调排序的映射

每个进程一个元素

  1. 第i个最低有效位标号不同的线执行(logn-i +1)次比较-交换操作。

  2. 映射到超立方体上,只需要将标号为l的输入线映射到标号为l的进程。(每次交换都是在标号只差一位的进程上交换。)

  3. 映射到格网上


每个进程一个元素块

  1. 每个进程虚拟成n/p个进程,并行效果差

  2. 使用比较-分裂操作代替比较-交换


冒泡排序及其变体

奇偶排序

串行算法是O(n*n),并行算法是O(n)。

希尔排序

快速排序

把每个子数组分给一个进程,第一次分裂花费的时间是O(N),有N个进程,所以不是成本最优的。

用于CRCW PRAM 的并行形式

在O(1)的时间将数组划分为两个更小的数组 :选出一个主元(每个进程都写同一个内存位置,最后的值就是主元),再得到左右两个主元(也是重复覆盖),被覆盖的值将他的参考主元修改,重复步骤。

一个坏的主元可能导致有的进程空闲的划分。如果每个进程的元素最初都均匀分布,那么就能导出一个好的主元选择方法。第一个进程的中值就是全部进程的中值。

桶和样本排序

Sorting(排序)相关推荐

  1. Sorting 排序详解(c语言实现)

    Sorting 排序详解(c语言实现)# 今日突然有任务,明天补充完整. 邮箱:Is_Dmy@163.com期待交流. Hello,各位小伙伴~我是你们的课代表橙橙,今天呢我要给大家分享的是关于内排序 ...

  2. Bzoj 4371: [IOI2015]sorting排序 二分

    题目 似乎很久没写题解了... 这题是校里胡策的时候的题,比赛因为评测机有点慢+自己代码常数大没快读...被卡t了,但是bzoj上还是A了的...,因为bzoj时限比较宽可以不卡常. 题解: 首先可以 ...

  3. 排序(sorting)

    本文转载自:http://spaces.isu.edu.tw/upload/18833/3/web/sorting.htm 排序(Sorting) 排序(sorting),將一組資料一使用者需求,予以 ...

  4. java实现八种排序算法并测试速度(详细)

    算法代码: /*** Created by CLY on 2017/3/17.*/ package pers.cly.sorting; /*** 排序工具类,里面包含各种排序方法*/ public c ...

  5. CMU Database Systems - Sorting,Aggregation,Join

    Sorting 排序如果可在内存里面排,用经典的排序算法就ok,比如快排 问题在于,数据表中的的数据是很多的,没法一下都放到内存里面进行排序 所以就需要用到,外排,多路并归排序 看下最简单的,2路并归 ...

  6. java 排序api_用java api进行sort

    Sun授权刊登 本节中所描述的多态算法 (polymorphic algorithms)是由 JDK 所提供的可重复使用的功能性片段.它们均取自Collections类,并都采用静态方法(它的第一个参 ...

  7. DataFrame 排序

    按值排序 DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position= ...

  8. ASP.NET2.0 GridView小技巧汇粹

    1)GridView绑定数据源控件,需要有编辑和删除选项按钮时,数据源控件必须提供SQL操作语句或存储过程调用,一般,我的推荐做法是,使用无意义的SQL语句或存储过程来使GridView的编辑和删除按 ...

  9. 从JS数组中删除重复的值[duplicate]

    本文翻译自:Remove duplicate values from JS array [duplicate] This question already has answers here : 这个问 ...

最新文章

  1. 使用asp.net MVC4中的Bundle遇到的问题及解决办法
  2. 【Qt】数据库实战之QSqlRelationalTableModel
  3. 后台服务出现明显“变慢”,谈谈你的诊断思路?
  4. asp点击按钮sql列求和_SQL 结构化查询语言
  5. Java Hashtable containsValue()方法与示例
  6. 链表 java详解_链表详解——Java版
  7. 【动态规划笔记】背包问题:搬寝室
  8. 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码
  9. Android开发工程师文集-提示框,菜单,数据存储,组件篇
  10. 中国云计算的发展历史
  11. cgi-bin是什么
  12. 股票投资(炒股)之入门基础知识
  13. 人工智能研究中心快递柜——代码分析十
  14. 拓嘉启远:怎样做拼多多推广见效是比较快的
  15. idea运行项目流程
  16. php5时区,PHP5 时区设置方法详解
  17. netty 高匿ip检测_高匿代理ip不用担心被网站检测
  18. 求一个数的最小素因子外加快速分解质因子
  19. 拼多多商家一件代发,一键打单有什么软件?
  20. 电子政务信息交换平台与数据中心的构建(转)

热门文章

  1. 西电软工计算机通信与网络期末复习要点总结
  2. Harvest watermelon
  3. Linux使用 iftop 监控网卡的实时流量
  4. python xlsx追加数据_python 实现众多excel表格中关键数据追加项目配置库台账.xlsx...
  5. 实现保留两位小数的方法
  6. 微信小程序抓包——小白自用版
  7. ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)
  8. 输入法(InputMethodService)生命周期解读
  9. java二维数组的创建,java二维数组创建方法
  10. RT-Thread与华南理工大学、兰州大学、哈尔滨信息工程学院成立——联合实验室!