下面是一个排序算法,用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,
Li Shaocheng. Published under BY-NC-SA
Comments
Write a Comment