点击上方蓝字关注我,我们一起学编程有任何疑问或者想看的内容,欢迎私信
前天我们一起看了猴子排序,今天我们再来看一个奇葩的排序方法:睡眠排序。
所谓睡眠排序,就是为待排序数组的每一个元素 x
启动一个线程,睡眠 x
秒后,打印 x
。
参考代码:
#include
#include
using namespace std;
void* sortThread(void* args){
int num = *(int *)args;
sleep(num);
cout <endl;
}
void sleepSort(vector<int>& nums){
vector<pthread_t> t(nums.size());
for (int i = 0; i pthread_create(&t[i], NULL, sortThread, &nums[i]);
}
pthread_exit(NULL);
}
int main(){
vector<int> nums{3, 5, 4, 6, 1, 9, 7, 2, 8};
sleepSort(nums);
return 0;
}
运行结果为:
是不是很神(沙)奇(雕)?哈哈哈哈哈哈哈哈。。。