分布式与并行计算—并向算法实现

news2024/12/23 3:18:26

访问【WRITE-BUG数字空间】_[内附完整源码和文档]

原始串行快速排序算法中有“分而治之”的递归调用部分,在每次选择pivoit并把序列按照小于pivoIt和大于pivoit分成两类后,左右两部分的递归排序可以并发执行。

运行时间
为了减小偶然性因素造成的时间差异,对每一个算法重复运行10000次,取平均耗时。
考虑到“枚举排序”所需时间( O ( n 2 ) O(n^2) O(n2))远远长于另外两者,因此“枚举排序”只运行一遍。
时间(毫秒) 快速排序 枚举排序 归并排序
串行 1.6889 2204 3.4941
并行 0.8604 277 1.5046
并行算法实现
快速排序
原始串行快速排序算法中有“分而治之”的递归调用部分,在每次选择pivoit并把序列按照小于pivoIt和大于pivoit分成两类后,左右两部分的递归排序可以并发执行,伪代码如下。
ParallelQucikSort(data, p, r)
q = Partition(data, p, r) // partition会返回pivoit
task[1] = ParallelQuickSort(data, p, q - 1)
task[2] = ParallelQuickSort(data, q + 1, r)
for j = 1 to 2 par-do
task[i]
return data
枚举排序
枚举排序原本会依次对每个元素进行计数的操作,我们可以使这些操作并行化,伪代码如下
ParallelEnumerateSort(data)
sorted_data = new List
for i = 1 to data.length par-do
counter = 0
for j = 1 to data.length do
if data[j] < data[i]
counter = counter + 1
sorted_data[counter+1] = data[i]
return sorted_data
归并排序
归并排序的并行化改进与快速排序类似,都是在“分而治之”分完之后,对两个子任务并行执行,伪代码如下
ParallelMergeSort(data)
if (data.length==1)
return data
else
new_data[1] = data[:data.length/2]
new_data[2] = data[data.length/2:]
for i = 1 to 2 par-do
ParallelMergeSort(new_data[i])

    data = MergeData(new_data[1],new_data[2])
    return data![在这里插入图片描述](https://img-blog.csdnimg.cn/36d024dc46714d4f815666da03b049b6.jpeg#pic_center)

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/550209.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

postgresql|数据库|插件学习(一)---postgresql-12的内置插件pg_stat_statements的启用和使用

前言&#xff1a; 插件就是原软件的扩展功能。postgresql有非常多的各种各样的插件&#xff0c;当然了&#xff0c;插件不安装对于我们使用数据库并没有什么太多的影响&#xff0c;可能只是不舒服一些而已&#xff0c;但有一些插件我们如果有安装&#xff0c;那么&#xff0c;对…

【NMI 2021】从生物学角度看进化计算(6个生物进化特征)

A biological perspective on evolutionary computation “生物学视角下的进化计算”&#xff0c;总结了进化算法——通过对比模拟和真实的进化&#xff0c;指出当前进化算法与生物进化存在的六点差异&#xff0c;并指出了对应的改进方案。 何为进化算法&#xff1f; 将任意问…

第二部分——长难句——第二章——复合句——第二节——状语从句

最后一类了哦 一&#xff0c;状语从句的概述 &#xff08;一&#xff09;状语从句的含义 一个句子作状语表达描述性的信息 一个主句可以组合好几个状语从句&#xff0c;因为可以表述不同方面的信息。 &#xff08;二&#xff09;状语从句的写法 状语从句的连接词叫做从属连…

Java--内部类学习笔记

本文介绍了什么是内部类,Java中的内部类:实例内部类. 静态内部类.局部内部类.匿名内部类的语法和注意事项,以及每个内部类的运用场景,以及简单介绍了匿名内部类更简洁更特殊的语法->lambda表达式 Java内部类学习笔记 一.什么是内部类?二. 内部类的分类1.实例内部类2.静态内…

【计算机视觉 | 扩散模型】新论文 | DragGAN论文:如果甲方想把大象 P 转身,你只需要拖动 GAN 就好了

文章目录 一、论文说明二、前言三、论文理解四、实验4.1 定性评估4.2 定量评估4.3 讨论 一、论文说明 2023年5月18日提交的论文&#xff0c;华人一作。 论文地址&#xff1a; https://arxiv.org/pdf/2305.10973.pdf项目地址&#xff1a; https://vcai.mpi-inf.mpg.de/projec…

pg事务:子事务

什么是子事务&#xff1f; 一般事务只能整体提交或回滚&#xff0c;而子事务允许部分事务回滚。 SAVEPOINT p1 在事务里面打上保存点标记。不能直接提交子事务&#xff0c;子事务也是通过事务的提交而提交。不过可以通过ROLLBACK TO SAVEPOINT p1回滚到该保存点。 子事务在大…

人工智能基础部分19-强化学习的原理和简单应用,一看就懂

大家好&#xff0c;我是微学AI&#xff0c;今天给大家介绍一下人工智能基础部分19-强化学习的原理和简单应用&#xff0c;随着人工智能的不断发展&#xff0c;各种新兴技术不断涌现。作为人工智能的一个重要分支&#xff0c;强化学习近年来受到了广泛关注。本文将介绍强化学习的…

基于C++的物资管理系统的设计与实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 一 需求分析 程序需实现以下功能&#xff1a; 新物资信息录入&#xff08;编号、名称、库存&#xff09; 查询已录入的所有物资信息&#xff08;编号或名称为索引&#xff09; 添加物资信息&#xff08;编号或名称为索引&…

Python 初识基础

Python 初识基础 一、Python 变量定义使用二、Python 是弱类型的语言三、Python 注释四、Python 编码规范五、Python 标识命名规格六、Python 保留字表七、Python 内置函数表 一、Python 变量定义使用 声明&#xff1a;变量名 value值1、变量的值不是一成不变的&#xff0c;它…

成为顶级黑客:从零开始学习网络渗透的完整指南

前言 网络安全再进一步细分&#xff0c;还可以划分为&#xff1a;网络渗透、逆向分析、漏洞攻击、内核安全、移动安全、破解PWN等众多子方向。今天的这篇&#xff0c;主要针对网络渗透方向&#xff0c;也就是大家所熟知的“黑客”的主要技术&#xff0c;其他方向仅供参考&…

计算机视觉 YOLOv5_3.1实验记录

YOLOv5_3.1 I. 散点图II. 指标III. precision-recall_curveIV. labelsv. 可视化 I. 散点图 这些参数通常用于目标检测模型的评估。其中&#xff1a; Box表示目标检测模型检测出的所有边界框的数量&#xff1b;val Box表示用于验证检测模型性能的边界框数量&#xff1b;Objectn…

国内IEEEXplore访问加速(adblock)

访问IEEEXplore&#xff0c;需要加载一个网页需要等好久&#xff0c;然后才出来&#xff0c;就很奇怪&#xff0c;查到网上有同样这个问题 感谢原博主&#xff1a;ieeexplore加载慢的解决办法 核心原因&#xff1a; 国内无法访问地址&#xff1a; https://cdn.jwplayer.com/…

Docker搭建企业邮箱,poste.io教程

poste.io介绍 首先要知道&#xff0c;搭建企业邮箱即可拥有自己的域名后缀邮箱&#xff0c;自定义邮件地址&#xff0c;什么admin&#xff0c;root&#xff0c;info都是随便用的。Poste.io官网&#xff1a;https://poste.io/ 文档&#xff1a;https://poste.io/doc/ Poste.io…

洛谷P1618

一、问题引出 三连击&#xff08;升级版&#xff09; 题目描述 将 1 , 2 , … , 9 1, 2,\ldots, 9 1,2,…,9 共 9 9 9 个数分成三组&#xff0c;分别组成三个三位数&#xff0c;且使这三个三位数的比例是 A : B : C A:B:C A:B:C&#xff0c;试求出所有满足条件的三个三位…

声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)

借助So-vits我们可以自己训练五花八门的音色模型&#xff0c;然后复刻想要欣赏的任意歌曲&#xff0c;实现点歌自由&#xff0c;但有时候却又总觉得少了点什么&#xff0c;没错&#xff0c;缺少了画面&#xff0c;只闻其声&#xff0c;却不见其人&#xff0c;本次我们让AI川普的…

Linux软件包管理器yum

Linux软件包管理器yum 一.什么是安装包二.关于rese1.windows传到Linux2.linux到windows 三.安装四.卸载五.yum扩展源六.一些好玩的软件1.第一个2.第二个 一.什么是安装包 1.在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 2.但是这样太麻…

阿里云服务器ECS是什么?详细介绍

阿里云服务器ECS是什么&#xff1f;云服务器和传统的物理服务器有什么区别&#xff1f;云服务器有哪些优势&#xff1f;云服务器可以什么&#xff1f;云服务器架构及云服务器包含哪些功能组件&#xff1f;阿里云百科来详细说下什么是云服务器ECS&#xff1a; 目录 阿里云服务…

Python+Selenium教程

PythonSelenium教程 准备工作1.安装selenium2.下载浏览器驱动3.测试执行 元素定位控制浏览器操作控制浏览器窗口大小浏览器后退前进浏览器刷新 Webelement常用方法点击和输入提交其他 鼠标操作键盘操作获取断言信息等待页面加载完成显示等待隐式等待 Selenium是一个用电脑模拟人…

验证知识点总结

1、常用总线对比 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance Bus) 高级高性能总线 ASB (Advanced System Bus) 高级系统总线 APB (Advanced Peripheral Bus) 高级外围总线 AXI (Advanced eXtensible Interface) 高…

521之虚拟女友-程序猿的你不认领一个?

520已经来了&#xff0c;你准备好迎接这一浪漫的日子了吗&#xff1f; 作为知否AI问答向你推荐一个值得期待的礼物——知否AI虚拟女友。目前人们对虚拟女友的需求越来越高&#xff0c;而知否AI虚拟女友正是满足这一需求的最佳选择。 01 — 知否AI虚拟女友 作为一款基于ChatG…