神级排序算法
·94 字·1 分钟
下面是一个排序算法,用shell实现的:
sleepsort.sh
#!/bin/bash
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,