资源简介

父进程创建三个子线程,第一个子线程对数组的前半部分进行选择排序,第二个子进程对数组的后半部分进行选择排序,第三个子线程对两个已经排序好的数组部分进行归并排序,最后当所有子线程结束之后,父进程输出排序好的数组。

资源截图

代码片段和文件信息

#include 
#include 
#include 
#include 
struct parameters
{
int start;
int end;
};
int num[10]={71219318426158};
int out[10];
void *sort(void *param)
{
int ijtmminf;
struct parameters *data = (struct parameters*)param;
i=data->start;
j=data->end;
for(t=i;t<=j;t++){
min=num[t];
f=t;
for(m=t;m<=j;m++){
if(num[m] min=num[m];
f=m;
}
}
num[f]=num[t];
num[t]=min;
}
pthread_exit(0);
}
void *merge()
{
int s1=0s2=5i=0;
while(s1<5&&s2<10){
if(num[s2]>=num[s1]){
out[i]=num[s1];
i++;
s1++;
}else{
out[i]=num[s2];
i++;
s2++;
}
}
if(s1>=5){
while(s2<10){
out[i]=num[s2];
i++;
s2++;
}
}else{
while(s

评论

共有 条评论