排序、搜索算法与连分数的奇妙世界
1. 睡眠排序算法
睡眠排序是一种独特的排序算法,但它存在诸多缺点:
- 无法处理负数 :由于不能进行负时长的睡眠,睡眠排序无法对包含负数的列表进行排序。
- 受异常值影响大 :执行高度依赖异常值,若列表中添加一个较大的数,如 1000,算法至少要等待 1000 秒才能完成执行。
- 相近数字排序可能出错 :如果线程不是完美并发执行,相近的数字可能会以错误的顺序插入。
- 依赖线程支持 :因为使用了线程,在不支持(或不良好支持)线程的硬件或软件上无法(良好)执行。
睡眠排序的运行时间用大 O 表示法可表示为 O(max(list)),其运行时间不取决于列表的大小,而是取决于列表中元素的大小,这使得它难以依赖。
不过,引入睡眠排序有以下几个原因:
1. 激发创新 :它与其他现存的排序算法截然不同,提醒我们即使是最陈旧和静态的研究领域也有创新的空间。
2. 发现天才 :它由可能是主流研究和实践之外的人匿名设计和发布,说明伟大的思想和天才不仅存在于知名大学、权威期刊和顶尖公司中。
3. 计算机原生算法 :代表了新一代“计算机原生”算法,基于计算机独特的能力(如睡眠和线程),而非像许多旧算法那样是手动操作的翻译。
4. 实用思想 :其依赖的计算机原生思想(睡眠和线程)非常有用,
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



