繁体   English   中英

排序算法的临界值是多少?

[英]what is cut off value in sorting algorithms?

我被要求做快速排序,以插入排序终止。 但是我不明白临界值的含义。 我需要有人通过实际示例来详细说明这个概念。

没有看到确切的要求说明就很难确定。

但是,我认为这意味着您应该使用小于特定大小(“截断”)的插入排序( O(N^2) )和大于该大小的O(NlogN)排序( O(NlogN) )。

  • 它们可能意味着您需要对输入数组的大小进行此测试。

  • 它们还可能意味着您实现了混合排序,并在快速排序分区大小小于阈值时在子数组上使用插入排序。

两种解释都是合理的。


我需要有人通过实际示例来详细说明这个概念。

我怀疑您需要一些示例来理解这一点。 如果您了解插入排序和快速排序算法,那么从概念上讲这很简单。 (而且,如果您不了解它们,那么可以从数据结构和算法教科书开始到很多地方阅读它们。)

一些算法在渐近性上优于其他算法。 在您的情况下,Quicksort的渐近运行时间为O(N(logN)),而插入排序的渐近运行时间为O(N ^ 2)。

这意味着对于较大的N值,Quicksort的运行速度将比插入排序快。

但是,对于较小的N值,插入排序可能会运行得更快。 因此,您可以将Quicksort的实际运行时间与较小数组大小的插入排序结合使用,以优化其实际运行时间。

Quicksort是一种递归算法,它将原始数组分解为较小的数组,并在每个子数组上递归运行。 使用插入排序进行切除意味着,一旦达到的数组大小小于某个恒定的切除大小,便可以使用插入排序对这些小的数组进行排序,而不是继续递归。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM