資源簡介
父進(jìn)程創(chuàng)建三個子線程,第一個子線程對數(shù)組的前半部分進(jìn)行選擇排序,第二個子進(jìn)程對數(shù)組的后半部分進(jìn)行選擇排序,第三個子線程對兩個已經(jīng)排序好的數(shù)組部分進(jìn)行歸并排序,最后當(dāng)所有子線程結(jié)束之后,父進(jìn)程輸出排序好的數(shù)組。
代碼片段和文件信息
#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
評論
共有 條評論