// | |
#include "stdafx.h" | |
#include"mpi.h" | |
#include<iostream> | |
#include <stdlib.h> | |
#include <stdio.h> | |
using namespace std; | |
#define TRUE 1 | |
/* | |
* 函数名: Partition | |
* 功能:对起止位置为wht_start和wht_end的数组序列,将其分成两个非空子序列, | |
* 其中前一个子序列中的任意元素小于后个子序列的元素。 | |
* 输入:无序数组wht_data[1,n] | |
* 返回: 两个非空子序列的分界下标 | |
*/ | |
double wht_start_time,wht_end_time; | |
int Partition(int *wht_data,int wht_start,int wht_end) | |
{ | |
int wht_pivo; | |
int wht_i, wht_j; | |
int wht_tmp; | |
wht_pivo=wht_data[wht_end]; | |
wht_i=wht_start-1; /*wht_i(活动指针)*/ | |
for(wht_j=wht_start;wht_j<wht_end;wht_j++) | |
if(wht_data[wht_j]<=wht_pivo) | |
{ | |
wht_i++; /*wht_i表示比wht_pivo小的元素的个数*/ | |
wht_tmp=wht_data[wht_i]; | |
wht_data[wht_i]=wht_data[wht_j]; | |
wht_data[wht_j]=wht_tmp; | |
} | |
wht_tmp=wht_data[wht_i+1]; | |
wht_data[wht_i+1]=wht_data[wht_end]; | |
wht_data[wht_end]=wht_tmp; /*以wht_pivo为分界,wht_data[wht_i+1]=wht_pivo*/ | |
return wht_i+1; | |
} | |
/* | |
* 函数名: QuickSort | |
* 功能:对起止位置为wht_start和wht_end的数组序列,进行串行快速排序。 | |
* 输入:无序数组wht_data[1,n] | |
* 返回:有序数组wht_data[1,n] | |
*/ | |
void QuickSort(int *wht_data,int wht_start,int wht_end) | |
{ | |
int wht_r; | |
int wht_i; | |
if(wht_start<wht_end) | |
{ | |
wht_r=Partition(wht_data,wht_start,wht_end); |
QuickSort (MPI 实现)
最新推荐文章于 2022-05-16 12:24:09 发布