算法原理
最近排序算法中也出现了一个网红,它不仅很红,而且时间复杂度是O(1),我这种算法爱(da)好(shui)狂(bi)怎么可以错过这么优秀的算法。那么,是什么排序算法这么优秀?它的名字就叫做睡眠排序。顾名思义,就是利用程序的 sleep,什么也不用干,等着数字自己蹦出来。
上代码!
1 | // go 版,更能展现出该算法的简洁与优秀 |
注意
- 这个算法有一些局限,目前只能对数字进行排序。
- 有一些同学认为这是一个时间复杂度为 O(n) 的算法,这个是错误的,算法所用的时间是 max(arr), 是一个常数时间,怎么能是 O(n) 呢?
- 熟悉 go 的同学可能注意到了, Nanosecond 比 Millisecond 更短,为什么不用 Nanosecond 呢?经过我实际测试,Nanosecond 在对相差不大的数进行排序的时候,会出现输出顺序的错误,可能 Nanosecond 太小了吧。
- 上述代码,你可以转载、使用,但是如果造成任何损失,本人不承担任何责任。
- 不许笑,认真脸!<(‵^′)>