睡眠排序

根据CPU的调度算法实现的,对一组数据进行排序,不能存在负数值,这个数是多大,那么就在线程里睡眠它的10倍再加10,不是睡眠和它的数值一样大的原因是,当数值太小时,误差太大,睡眠的时间不比输出的时间少,那么就会存在不正确的输出结果。

猴子排序

随机打乱数组,检查是否排好序,若是,则输出,否则再次打乱,再检查…最佳情况O(n),平均O(n*n!),最坏可执行直到世界的尽头。

一个有趣的理论:一只猴子随机敲打打字机键盘,如果时间足够长,总是能打出特定的文本,比如莎士比亚全集。^_^

面条排序

首先去买一捆面条,我喜欢手擀面。找到数组中最大和最小的两个数(O(n)),让最大的数对应一根很长的面条,最小的数对应一根很短的面条。
重新遍历数组,每遇到一个数,就取一根面条,把它切成这个数对应的长度,可以得到n根面条。
这里的数与面条长度的对应可以用一个严格递增的函数来映射。
接下来,一手握住这n根面条,稍微用力,别握太紧,在平放的桌面上直立着放下,让所有的面条底端接触到桌面。另一只手平行于桌面,从面条上方缓慢往下移动,每当这只手碰到一根面条,移走它,并把对应的数输出到结果数组中,直到移走全部面条。

你们还见过哪些奇葩的排序算法,留言说说呗~


©著作权归作者所有:来自51CTO博客作者mb5fe18fab305a5的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 与MySQL服务器进行大量睡眠连接的可能原因?
  2. 可以睡眠的poll

随机推荐

  1. 从android 里面读取配置文件
  2. android软键盘隐藏总结
  3. Android resources
  4. TextView中style的应用
  5. Android 解决Handler在运行时加载报空指
  6. Android各版本的SDK Platforms和API Leve
  7. Android旋转屏幕不销毁数据的方法
  8. 你需要知道的Android拍照适配方案
  9. Android 文件存储的简单实现
  10. Android Password Manager