真实世界的例子来决定哪种排序算法效果最好

时间:2012-06-13 20:23:42

标签: algorithm sorting time-complexity space-complexity

在我得到答案之前,我冒着被关闭这个问题的风险,但我确实想知道答案。所以这里。


我目前正在尝试学习算法,我开始理解它,但无法与之相关。

我理解时间复杂性空间复杂性。我也了解一些基于伪代码的排序算法

排序算法,如

  1. 冒泡排序
  2. 插入排序
  3. 选择排序
  4. 快速排序
  5. 归并
  6. Heapsort(有些什么)
  7. 我也知道 Best Case Worst Case 场景(平均情况不是很多)。


    一些在线相关参考资料

    • Nice place以图形方式显示以上所有内容。
    • This也给了我一个很好的理解。

    但我的问题是 - 有人可以给我真实世界示例这些排序算法的实现。

2 个答案:

答案 0 :(得分:7)

随着元素数量的增加,您将使用更复杂的排序算法。后面的排序技术具有更高的初始开销,因此您需要对许多元素进行排序以证明该成本合理。如果你只有10个元素,那么气泡或插入排序将比合并排序或密码输出快得多。

对于较小的嵌入式设备(如电视遥控器或手机),空间复杂性非常重要。您没有足够的空间在这些设备上执行像堆操作一样的操作。

Datebases使用外部合并排序来排序太大而无法完全加载到内存中的数据集。这种驱动因素是磁盘I / O数量的减少。

Good bubble sort discussion,还有许多其他需要考虑的因素会导致时间和空间的复杂性。

Sorting-Algorithms.com

答案 1 :(得分:0)

一个例子是C ++ STL sort

正如wikipedia page所说:

  

例如,GNU标准C ++库使用混合排序   算法:首先执行introsort,给出最大深度   2×log2 n,其中n是元素数,后跟插入   排序结果。1无论实施什么,复杂性   应该是O(n log n)平均值的比较。[2]