这可能是一个无聊的问题,所以请理解我可怜的灵魂。
在阅读了这篇关于智能设计排序(http://www.dangermouse.net/esoteric/intelligentdesignsort.html)的文章之后,我开始想知道这是否可行。
文章的摘录说:
原始输入列表按其精确顺序排列的概率为1 /(n!)。这样的可能性很小,说这是偶然发生的,这显然是荒谬的,因此它必须由智能分拣机有意识地按顺序排列。
让我们暂时忘记智能分拣机,并考虑阵列中随机出现的成员以某种方式排序的可能性。我们的算法应该在不改变数组结构的情况下确定模式。
有没有办法做到这一点?速度不是必需的。
答案 0 :(得分:1)
实际上实现起来非常容易。本文的重点是您实际上没有对任何内容进行排序。换句话说,正确的实现是简单的NOP
。由于我的首选语言是Java,因此我将以lambda函数的形式展示Java中的简单就地实现:
list->{}
答案 1 :(得分:0)
Funny article, I had a good laugh.
If the only thing you're interested in is that whether your List
is sorted, then you could simply keep an internal sorted
flag (defaulted to true
for an empty list) and override your add()
method to check if the element you're adding fits the ordering of the List
- that is, compare it to the adjacent elements and setting the sorted
flag appropriately.