gpt4 book ai didi

java - 什么时候对另一个使用排序

转载 作者:行者123 更新时间:2023-11-29 08:14:15 25 4
gpt4 key购买 nike

在 Quicksort、MergeSort 和 Binary Insertion Sort 中,是否存在需要使用其中任何一种的情况?

我知道像 Quicksort 这样的东西在几乎排序的列表上可能会出现问题(但我相信主元的随机分配可以消除最坏情况的时间),所以使用 MergeSort 可能更好。 MergeSort 可能比 QuickSort 使用更多的空间,我不完全确定,Merge 可能更适合 LinkedLists。

我猜二进制插入排序更适合较小的列表?如果是这样,使用这个是否有阈值,或者大小是否只是由解释决定?比如,如果列表的大小为 3,我们应该使用二进制插入排序而不是快速排序还是合并排序?

最佳答案

我假设这是在寻求有关如何在 Java 中对内容进行排序的实用建议。

我的建议是,通常最好使用 Arrays.sort(...) 并依靠标准实现的试探法来决定使用哪种排序算法。你只需要担心这个如果:

  • 您知道您将对庞大的数据集进行排序,
  • 您知道您的数据集适用于特殊的排序方法;例如计数排序,或
  • 分析告诉您,您对标准排序方法的使用是性能瓶颈。

(在我的回答中隐含的是,你知道所有关于不同排序算法的特性,正如任何好的数据结构教科书中所介绍的那样。IMO,每个程序员都应该知道这些东西。)

关于java - 什么时候对另一个使用排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5784610/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com