0

这可能是一个轻浮的问题,所以请理解我可怜的灵魂。

在阅读了这篇关于智能设计排序 ( http://www.dangermouse.net/esoteric/intelligentdesignsort.html ) 的文章后,我开始怀疑这是否可能。

文章摘录说:

原始输入列表与其所在顺序完全相同的概率是 1/(n!)。这种可能性很小,说这是偶然发生的显然是荒谬的,所以它一定是由智能分拣机有意识地排列的。

让我们暂时忘记智能排序器,并考虑数组中随机出现的成员以某种方式排序的可能性。我们的算法应该在不改变数组结构的情况下确定模式。

有没有办法做到这一点?速度不是要求。

4

2 回答 2

1

实现实际上非常简单。这篇文章的重点是你实际上并没有对任何东西进行排序。换句话说,正确的实现是简单的NOP. 由于我的首选语言是 Java,我将在 Java 中展示一个简单的就地实现作为 lambda 函数:

list->{}
于 2020-03-15T17:07:06.877 回答
0

有趣的文章,我笑得很开心。

如果您唯一感兴趣的是您是否Listsorted,那么您可以简单地保留一个内部sorted标志(默认true为空列表)并覆盖您的add()方法以检查您添加的元素是否符合排序List- 也就是说,将其与相邻元素进行比较并sorted适当地设置标志。

于 2016-03-02T11:03:33.110 回答