昆明理工大学硕士研究生课程
–
期末实习作业
姓名:韩翠翠
学号:
2013704098
一、
实习题目与要求
奇偶交换排序
实现
MPI
下的一个奇偶交换排序,
odd_even_sort.c
中已
经包括排序的一个顺序实现。
不断重复上述两种操作,
直到数组
中没有任何数可以交换。在并行环境中实现上述过程。
二、
程序的设计与实现
1.
主要思想
奇偶排序的顺序执行是不断的重复两种操作,
直到所有的数
据完成排序。第一种操作是奇
/
偶阶段,把数组中的
array[i]
和
array[i+1]
看成一对数进行比较,
i
是奇数
i+1
是偶数。如果
array[i]
>
array[i+1],
就交换两个数
.
第二个操作是偶
/
奇阶段,
同样比较数组中的每一对数
array[i]
和
array[i+1]
,
i
是偶数,
i+1
是奇数,同样进行比较和交换。
而在并行环境下,
可以简单的分配数组中的一小段到某一个
进程。每一小个数据片段都直接奇
/
偶排序,边界的值需要发送
或者从相邻的进程获取。
为程序相对简单,
约定每个进程都处理
偶数个数据。这意味着在奇
/
偶处理时,需要有进程间通信。但
在偶
/
奇时,所有的数据都是本地的。
2.
设计及主要代码
变量的声明及定义: