神级排序算法:sleep sort

 

下面是一个排序算法,用shell实现的:

#!/bin/bash #sleepsort.sh function f() { sleep "$1" echo "$1" } while [ -n "$1" ] do f "$1" & shift done wait

用法:

 

 

./sleepsort.sh 5 3 6 3 6 3 1 4 7

 

这个算法太NB、太BT、太搞笑了!

神马冒泡、插入、归并...  全是浮云啊!

膜拜吧!

 

详情可见酷壳原文:http://coolshell.cn/articles/4883.html

 

佩服之余,我在linux下用C语言实现了一把:

 //sleepsort.c #include <stdio.h> #include <unistd.h> #include <pthread.h> void *f(void *opt) { sleep((*((int *)opt))); printf("%d,",(*((int *)opt))); pthread_exit(0); } int main() { const int len=5; pthread_t a_thread[5]; int array[5]={3,5,2,4,1}; int i=0; while(i<len) { pthread_create(&(a_thread[i]),NULL,f,&(array[i])); i++; } i=0; while(i<len) { pthread_join(a_thread[i],0); i++; } printf("/n"); return 0; }

 

编译:

gcc  -Wall  -o  sleepsort  sleepsort.c   -lpthread

执行:

./sleepsort

结果:

1,2,3,4,5,

 

你可能感兴趣的:(JOIN,thread,算法,linux,shell,BT)