Algorithm 并行程序设计中的冒泡排序解释

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

我正在寻找用于冒泡排序的并行编程算法。我理解这个过程,但不知道。它是如何工作的?进程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-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
是正确的。