gpt4 book ai didi

java - 为什么归并排序和快速排序操作的顺序会导致第二个操作运行得更快?

转载 作者:太空宇宙 更新时间:2023-11-04 07:26:46 24 4
gpt4 key购买 nike

使用 Java(如果重要的话)

我依次运行 MergeSort 和 QuickSort,并比较两者的运行时间,在我的计算机上对 10,000,000 个值进行排序时,我发现运行 MergeSort 然后运行 ​​QuickSort 的运行时间

合并排序 = 1.6 秒(大约)

快速排序 = 0.3 秒(大约)

当首先运行快速排序,然后运行合并排序以获取相同的输入大小 10,000,000 时,我得到

合并排序 = 0.6s

快速排序 = 1.2s

我假设这可能与内存分配有关,但我不确定你会如何解释它

-编辑- 在运行这两个例程之前,我创建了文件 randomintegers.dat 的两个单独的数组 a[ ] 和 b[ ],其中包含 10,000,000 个随机值。 MergeSort 对数组 a[ ] 进行排序,QuickSort 对数组 b[ ] 进行排序。 (即两个数组是独立的

最佳答案

另一种选择是使用一个的输出作为下一个的输入。 QuickSortMergeSort 对输入“排序”(以积极的方式)更敏感。

关于java - 为什么归并排序和快速排序操作的顺序会导致第二个操作运行得更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18427256/

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