前段时间,分享了《算法导论》中,时间复杂度为O(n)的三种排序:然后有水友在评论中留言“是不是下一期要讲睡眠排序了?”。楼主才疏学浅,没有听过“睡眠排序”,网上搜了一下,眼界大开。这是一个不但没有工程意义,也不具有分析意义,甚至未必能得到正确的排序结果的排序。既然大伙充满好奇心,那就简单分享一下。void sleep_sort(uint arr[], uint n){
for(uint i=0;i<n;i++){
Thread t = new Thread(){
@Override
public void run(){
sleep(arr[i]);
print(arr[i]);
}
};
t.start();
}
}
《世界上最慢的排序算法!》尚有时间复杂度分析的意义,睡眠算法似乎完全没有什么luan用。哎,如果认真,我们就输了。