什么是效率最低的排序程序?

时间:2011-10-26 18:39:21

标签: java algorithm sorting

对于整数数组,排序数组的效率最低的方法是什么。该功能应在每个步骤中取得进展(例如,无无限循环)。该算法的运行时间是多少?

9 个答案:

答案 0 :(得分:9)

对任何事情都没有最低效的算法。这可以很容易地通过矛盾来证明,只要你接受这一点,从任何算法开始,都可以构造另一个等效但效率较低的算法。

答案 1 :(得分:5)

Bogosort的平均运行时间为O(n*n!),哎哟。

答案 2 :(得分:3)

stupid sort肯定是最差的算法。这不是一个无限循环,但这种方法最坏的情况是O(inf),而avarage是O(n × n!)

答案 3 :(得分:2)

我能用运行时有限上限思考的效率最低的算法是置换排序。我们的想法是生成输入的每个排列(组合)并检查它是否已排序。

上限为O(n!),当数组已经排序时,下限为O(n)。

答案 4 :(得分:2)

您可以通过生成所有唯一排列并在事后检查数组是否已排序,在O(n!*n)中执行此操作。

答案 5 :(得分:1)

  1. 使用对角化迭代所有有限的整数序列。
  2. 对于每个序列,测试它是否已排序。
  3. 如果是,请测试其元素是否与数组中的元素匹配。
  4. 这将有一个上限(第一次猜测:O(n ^(n * m)?)。

答案 6 :(得分:0)

奇怪的问题,通常我们是最快的。

找到最高并将其移至列表中。重复上一步,直到原始列表只剩下一个元素。你保证O(N ^ 2)。

答案 7 :(得分:0)

Bogosort是一种使用shuffle的最差排序算法。但从另一个角度来看,它在一步中排序数组的可能性很小:)

答案 8 :(得分:0)

" Worstsort"复杂度为\Omega((n!^{(f(n))})^2),其中n!^{(m)} = (...((n!)!)!...)! =阶乘n次迭代m次。可以找到Miguel A. Lerma的论文here