程序描述
此程序实现了多线程的数组排序,可将一个数组拆分为两部分交由两个线程来排序,最后由父进程对其总和。
程序功能实现代码预览
定义一个结构来存排序算法所需要的参数
typedef struct //结构体用来存排序算法需要的参数
{
int start;
int end;
}Para;
一个简单的冒泡排序
void sort(Para* para){
int i,j,temp;
for(i=para->start;i<para->end;i++){
for(j=para->end;j>i;j--){
if(elem[j]<elem[j-1]){
temp=elem[j];
elem[j]=elem[j-1];
elem[j-1]=temp;
}
}
}
pthread_exit(0);
}
实现对程序计时
int t_start=clock();
int t_end=clock();
将上面的代码分别放在程序首尾,最后相减即可得出运行时间
printf("耗时:%d\n", t_end-t_start);
注:此时间为CPU时间,两个核的话会把两个核的时间加起来。可以在程序名前面加time即可最后得出各种运行时间。