Algorithm 并行程序设计中的冒泡排序解释
我正在寻找用于冒泡排序的并行编程算法。我理解这个过程,但不知道。它是如何工作的?进程id或标签id(用于每个进程)是如何处理交换索引的,它是如何解决排序中的顺序编程问题的?我在下面提到的一个著名网站上的算法。提前感谢Algorithm 并行程序设计中的冒泡排序解释,algorithm,sorting,parallel-processing,Algorithm,Sorting,Parallel Processing,我正在寻找用于冒泡排序的并行编程算法。我理解这个过程,但不知道。它是如何工作的?进程id或标签id(用于每个进程)是如何处理交换索引的,它是如何解决排序中的顺序编程问题的?我在下面提到的一个著名网站上的算法。提前感谢 procedure ODD-EVEN_PAR (n) begin id := process's label for i := 1 to n do begin if i is odd and id is odd then compare-exchan
procedure ODD-EVEN_PAR (n)
begin
id := process's label
for i := 1 to n do
begin
if i is odd and id is odd then
compare-exchange_min(id + 1);
else
compare-exchange_max(id - 1);
if i is even and id is even then
compare-exchange_min(id + 1);
else
compare-exchange_max(id - 1);
end for
end ODD-EVEN_PAR
我假设
else
用于条件的第二部分id为奇数
而id仅为偶数
?compare\u exchange\u min
和的参数是i+1
或i-1
,而不是id+1
和id-1
?为什么进程id和i在同一时间是偶数,而在同一时间是奇数,为什么不相同呢如果i
或id
是奇数,
将执行两次。@m69你能解释一下算法是如何工作的吗。这个站点有顺序和并行奇偶转置排序的代码:else
确实只适用于第二种情况,但id+1
是正确的。