在我得到答案之前,我冒着被关闭这个问题的风险,但我确实想知道答案。所以这里。
我目前正在尝试学习算法,我开始理解它,但无法与之相关。
我理解时间复杂性和空间复杂性。我也了解一些基于伪代码的排序算法
排序算法,如
我也知道 Best Case 和 Worst Case 场景(平均情况不是很多)。
一些在线相关参考资料
但我的问题是 - 有人可以给我真实世界示例这些排序算法的实现。
答案 0 :(得分:7)
随着元素数量的增加,您将使用更复杂的排序算法。后面的排序技术具有更高的初始开销,因此您需要对许多元素进行排序以证明该成本合理。如果你只有10个元素,那么气泡或插入排序将比合并排序或密码输出快得多。
对于较小的嵌入式设备(如电视遥控器或手机),空间复杂性非常重要。您没有足够的空间在这些设备上执行像堆操作一样的操作。
Datebases使用外部合并排序来排序太大而无法完全加载到内存中的数据集。这种驱动因素是磁盘I / O数量的减少。
Good bubble sort discussion,还有许多其他需要考虑的因素会导致时间和空间的复杂性。
答案 1 :(得分:0)
一个例子是C ++ STL sort
正如wikipedia page所说:
例如,GNU标准C ++库使用混合排序 算法:首先执行introsort,给出最大深度 2×log2 n,其中n是元素数,后跟插入 排序结果。1无论实施什么,复杂性 应该是O(n log n)平均值的比较。[2]