当前位置: 首页 > 知识库问答 >
问题:

确定哪种排序算法最有效的真实示例

仲孙飞文
2023-03-14

在得到答案之前,我冒着这个问题被关闭的风险,但我真的很想知道答案。所以现在开始。

我目前正在尝试学习算法,我开始理解它,但无法与它联系起来。

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

排序算法,如

  1. 气泡排序
  2. 插入排序
  3. 选择排序
  4. 快速排序
  5. 合并排序
  6. 堆垛(一些什么)

我也知道最佳情况和最坏情况(一般情况不多)。

一些在线相关参考资料

  • 不错的地方,用图形显示了上述所有内容。
  • 这也给了我很好的理解。

但我的问题是——有人能给我真正的世界例子吗?这些排序算法是在哪里实现的。

共有2个答案

姚俊材
2023-03-14

一个例子是C STL排序

正如维基百科页面所说:

例如,GNU 标准 C 库使用混合排序算法:首先执行 introsort,最大深度由 2×log2 n 给出,其中 n 是元素的数量,然后对结果进行插入排序.1 无论实现如何,复杂度都应该是平均 O(n log n) 比较。[2]

齐献
2023-03-14

随着元素数量的增加,您将使用更复杂的排序算法。后来的排序技术有更高的初始开销,所以你需要大量的元素来排序,以证明这个开销是合理的。如果只有10个元素,冒泡排序或插入排序将比合并排序或堆排序快得多。

对于电视遥控器或手机等较小的嵌入式设备,空间复杂性非常重要。您没有足够的空间在这些设备上执行堆排序之类的操作。

数据库使用外部合并排序来对太大而无法全部装入内存的数据集进行排序。这种类型的驱动因素是磁盘I/o数量的减少。

很好的气泡分类讨论,还有许多其他因素需要考虑,这会导致时间和空间的复杂性。

Sorting-Algorithms.com

 类似资料:
  • 本文向大家介绍请问有哪些排序算法相关面试题,主要包含被问及请问有哪些排序算法时的应答技巧和注意事项,需要的朋友参考一下 参考回答: 冒泡排序 是最简单的排序之一了,其大体思想就是通过与相邻元素的比较和交换来把小的数交换到最前面。这个过程类似于水泡向上升一样,因此而得名。举个栗子,对5,3,8,6,4这个无序序列进行冒泡排序。首先从后向前冒泡,4和6比较,把4交换到前面,序列变成5,3,8,4,6。

  • 本文向大家介绍Python实现各种排序算法的代码示例总结,包括了Python实现各种排序算法的代码示例总结的使用技巧和注意事项,需要的朋友参考一下 在Python实践中,我们往往遇到排序问题,比如在对搜索结果打分的排序(没有排序就没有Google等搜索引擎的存在),当然,这样的例子数不胜数。《数据结构》也会花大量篇幅讲解排序。之前一段时间,由于需要,我复习了一下排序算法,并用Python实现了各种

  • 问题内容: 我想知道Swift的功能是如何实现的。它使用哪种排序算法- 它是mergesort,quicksort还是完全不同的东西?此功能提供的时序/复杂度保证是什么? 我无法在网上或官方文档中找到任何实现方式的迹象。 问题答案: 更新2: 正如我们在看到Sort.swift,现在使用“修改timsort”在斯威夫特5 Timsort是 从混合排序和插入排序派生的混合稳定排序算法 在最坏的情况下

  • 本文向大家介绍JavaScript排序算法动画演示效果的实现方法,包括了JavaScript排序算法动画演示效果的实现方法的使用技巧和注意事项,需要的朋友参考一下 之前在知乎看到有人在问 自己写了一个冒泡排序算法如何用HTML,CSS,JavaScript展现出来排序过程。   感觉这个问题还挺有意思 。前些时间就来写了一个。这里记录一下实现过程。 基本的思想是把排序每一步的时候每个数据的值用DO

  • 本文向大家介绍Python实现的堆排序算法示例,包括了Python实现的堆排序算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现的堆排序算法。分享给大家供大家参考,具体如下: 堆排序的思想: 堆是一种数据结构,可以将堆看作一棵完全二叉树,这棵二叉树满足,任何一个非叶节点的值都不大于(或不小于)其左右孩子节点的值。 将一个无序序列调整为一个堆,就可以找出这个序列的最大值

  • 本文向大家介绍Python实现的桶排序算法示例,包括了Python实现的桶排序算法示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Python实现的桶排序算法。分享给大家供大家参考,具体如下: 桶排序也叫计数排序,简单来说,就是将数据集里面所有元素按顺序列举出来,然后统计元素出现的次数。最后按顺序输出数据集里面的元素。 但是桶排序非常浪费空间, 比如需要排序的范围在0~2000之间,