排序之猴子算法
这期博客我主要想聊一聊一个没有什么实用价值的排序算法。它的时间复杂度已经超出现有已知任何其他的排序算法,同时,也低于现有任何已知的其他排序算法。它就是猴子算法。
相信在座各位都知道一个无限猴子定理,这个定理的内容就是:让一只猴子在电脑上疯狂的随机打字,只要时间足够的多,就可以打出莎士比亚全集。这个算法的核心也是这样的。
这个算法的过程是这样的:把给定的数组随机排一遍,然后判断是否符合排序要求,如果符合就输出,不符就再次随机排序。如此循环下去,直到随机排出了正确的排序。之所以说它的复杂度超过了其他算法,是因为它在最坏情况下永远都不会给出答案;而在最好的情况下,仅仅一遍就可以正确排序。而排序的时间,取决于你的欧气。
我愿称之为欧皇算法。