Sorting(排序)
内排序与外排序:外排序需要利用辅助存储器件(硬盘等),内排序可以全部放入主存储器中。
基于比较的排序算法和不基于比较的排序算法:基于比较的排序算法时间复杂度最低为O(N * logN),基于非比较的排序算法的复杂度下界为O(N)。
输入输出序列分散存放在各个进程当中,枚举出全部进程,使用一个全局排序,如果进程Pi枚举值小于Pj,则排序完之后Pi存放的值全都小于Pj。
每个进程存放一个元素:
每个进程存放多个元素:使用比较分裂,每个进程将他的块发送给另一个进程,每个进程合并块之后只保留合并块的适当一部分。
排序网络
比较器(递增和递减):
双调排序
复杂度为O(logN * logN)
双调序列:循环移位之后是一个先增后减的序列
重排双调序列获得单调递增序列:
s1取得的是最小值,s2取得的是最大值,所以两个序列包含的元素都不同,且合起来就是原始序列的所有元素。s1和s2的中介点是同一个(在该处s1变为递减,s2变为递增),且因为该处s2的取值大于s1,所以整个s2的值都大于s1。这样子就完成了将一个双调序列变成两个小的双调序列。
双调排序的映射
每个进程一个元素
第i个最低有效位标号不同的线执行(logn-i +1)次比较-交换操作。
映射到超立方体上,只需要将标号为l的输入线映射到标号为l的进程。(每次交换都是在标号只差一位的进程上交换。)
映射到格网上
每个进程一个元素块
每个进程虚拟成n/p个进程,并行效果差
使用比较-分裂操作代替比较-交换
冒泡排序及其变体
奇偶排序
串行算法是O(n*n),并行算法是O(n)。
希尔排序
快速排序
把每个子数组分给一个进程,第一次分裂花费的时间是O(N),有N个进程,所以不是成本最优的。
用于CRCW PRAM 的并行形式
在O(1)的时间将数组划分为两个更小的数组 :选出一个主元(每个进程都写同一个内存位置,最后的值就是主元),再得到左右两个主元(也是重复覆盖),被覆盖的值将他的参考主元修改,重复步骤。
一个坏的主元可能导致有的进程空闲的划分。如果每个进程的元素最初都均匀分布,那么就能导出一个好的主元选择方法。第一个进程的中值就是全部进程的中值。
桶和样本排序
Sorting(排序)相关推荐
- Sorting 排序详解(c语言实现)
Sorting 排序详解(c语言实现)# 今日突然有任务,明天补充完整. 邮箱:Is_Dmy@163.com期待交流. Hello,各位小伙伴~我是你们的课代表橙橙,今天呢我要给大家分享的是关于内排序 ...
- Bzoj 4371: [IOI2015]sorting排序 二分
题目 似乎很久没写题解了... 这题是校里胡策的时候的题,比赛因为评测机有点慢+自己代码常数大没快读...被卡t了,但是bzoj上还是A了的...,因为bzoj时限比较宽可以不卡常. 题解: 首先可以 ...
- 排序(sorting)
本文转载自:http://spaces.isu.edu.tw/upload/18833/3/web/sorting.htm 排序(Sorting) 排序(sorting),將一組資料一使用者需求,予以 ...
- java实现八种排序算法并测试速度(详细)
算法代码: /*** Created by CLY on 2017/3/17.*/ package pers.cly.sorting; /*** 排序工具类,里面包含各种排序方法*/ public c ...
- CMU Database Systems - Sorting,Aggregation,Join
Sorting 排序如果可在内存里面排,用经典的排序算法就ok,比如快排 问题在于,数据表中的的数据是很多的,没法一下都放到内存里面进行排序 所以就需要用到,外排,多路并归排序 看下最简单的,2路并归 ...
- java 排序api_用java api进行sort
Sun授权刊登 本节中所描述的多态算法 (polymorphic algorithms)是由 JDK 所提供的可重复使用的功能性片段.它们均取自Collections类,并都采用静态方法(它的第一个参 ...
- DataFrame 排序
按值排序 DataFrame.sort_values(by, axis=0, ascending=True, inplace=False, kind='quicksort', na_position= ...
- ASP.NET2.0 GridView小技巧汇粹
1)GridView绑定数据源控件,需要有编辑和删除选项按钮时,数据源控件必须提供SQL操作语句或存储过程调用,一般,我的推荐做法是,使用无意义的SQL语句或存储过程来使GridView的编辑和删除按 ...
- 从JS数组中删除重复的值[duplicate]
本文翻译自:Remove duplicate values from JS array [duplicate] This question already has answers here : 这个问 ...
最新文章
- 使用asp.net MVC4中的Bundle遇到的问题及解决办法
- 【Qt】数据库实战之QSqlRelationalTableModel
- 后台服务出现明显“变慢”,谈谈你的诊断思路?
- asp点击按钮sql列求和_SQL 结构化查询语言
- Java Hashtable containsValue()方法与示例
- 链表 java详解_链表详解——Java版
- 【动态规划笔记】背包问题:搬寝室
- 【CCCC】PAT : 团体程序设计天梯赛-练习集 L2 答案,题解,附代码
- Android开发工程师文集-提示框,菜单,数据存储,组件篇
- 中国云计算的发展历史
- cgi-bin是什么
- 股票投资(炒股)之入门基础知识
- 人工智能研究中心快递柜——代码分析十
- 拓嘉启远:怎样做拼多多推广见效是比较快的
- idea运行项目流程
- php5时区,PHP5 时区设置方法详解
- netty 高匿ip检测_高匿代理ip不用担心被网站检测
- 求一个数的最小素因子外加快速分解质因子
- 拼多多商家一件代发,一键打单有什么软件?
- 电子政务信息交换平台与数据中心的构建(转)
热门文章
- 西电软工计算机通信与网络期末复习要点总结
- Harvest watermelon
- Linux使用 iftop 监控网卡的实时流量
- python xlsx追加数据_python 实现众多excel表格中关键数据追加项目配置库台账.xlsx...
- 实现保留两位小数的方法
- 微信小程序抓包——小白自用版
- ArcGIS基础:CAD数据转换为GIS数据(符号化显示、数据转换、线转面、空间连接)
- 输入法(InputMethodService)生命周期解读
- java二维数组的创建,java二维数组创建方法
- RT-Thread与华南理工大学、兰州大学、哈尔滨信息工程学院成立——联合实验室!