Java 排序算法中的截止值是什么?

Java 排序算法中的截止值是什么?,java,data-structures,Java,Data Structures,我被要求做快速排序,用插入排序切断。但我不明白截止值的含义。我需要有人用真实世界的例子详细阐述这个概念。如果没有看到确切的需求陈述,很难确定 但是,我认为这意味着您应该在某个大小以下使用插入排序(O(N^2))和在该大小以上使用快速排序(O(NlogN)) 这可能意味着您要对输入数组的大小进行测试 它们还可能意味着实现混合排序,并在快速排序分区大小小于阈值时对子阵列使用插入排序 这两种解释都是合理的 我需要有人用真实世界的例子来阐述这个概念 我怀疑你是否需要例子来理解这一点。如果您了解插入

我被要求做快速排序,用插入排序切断。但我不明白截止值的含义。我需要有人用真实世界的例子详细阐述这个概念。

如果没有看到确切的需求陈述,很难确定

但是,我认为这意味着您应该在某个大小以下使用插入排序(
O(N^2)
)和在该大小以上使用快速排序(
O(NlogN)

  • 这可能意味着您要对输入数组的大小进行测试

  • 它们还可能意味着实现混合排序,并在快速排序分区大小小于阈值时对子阵列使用插入排序

这两种解释都是合理的


我需要有人用真实世界的例子来阐述这个概念


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

有些算法渐进地比其他算法好。在您的例子中,快速排序的渐进运行时间是O(N(logN)),而插入排序的渐进运行时间是O(N^2)

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

但是,对于较小的N值,插入排序可能运行得更快。因此,您可以通过将快速排序与小数组大小的插入排序相结合来优化快速排序的实际运行时

快速排序是一种递归算法,它将原始数组分解为更小的数组,并在每个子数组上递归运行。使用插入排序进行截断意味着,一旦数组大小小于某个固定的截断大小,就可以使用插入排序对这些小数组进行排序,而不是继续递归