我对快速排序和选择排序有疑问。我在这里读了很多帖子,但都没有回答我的问题。看一看:我们有10 to的数字,我们必须对它们进行排序。然而,我们只有800mb的内存可用,所以合并排序是不可能的。现在,由于数组的巨大尺寸,冒泡排序也是不可能的。就我个人而言,我认为这两种排序算法都很适合这项工作,但我只能选择其中一种,效果更好的。快速排序:通常有: O(N * logN)和最差: O(N^2)选择排序:通常和最差: O(N^2)快速排序似乎更好,但根据我的经验,我认为对于大型数据结构,选择排序略好于快速排序。你认为如何?谢谢!
发布于 2015-01-25 03:52:53
对于如此庞大的数据,快速排序比选择排序更好。在测试数据中包含较大的已排序数据集的情况下,选择排序可能会执行得更好。但这并不能让它比快速排序更好。在您的案例中,您的主要问题是如何继续对如此庞大的数据进行排序,因为这些数据无法保存在内存中并执行
发布于 2015-01-25 03:45:46
selection sort is slightly better than quicksort for huge data structures!你从哪里弄到这个的?该算法需要二次时间,因此它显然比快速排序差得多。实际上,你如何在RAM中容纳10‘s,如果它不在RAM中,你就不能在你的数组上使用任何算法。您需要一个外部排序算法,或者您可以将数据存储在DB中,然后让DB引擎为您排序。
发布于 2018-11-13 04:56:43
在这种情况下应该使用快速排序,因为它是当前最快的排序算法。因为选择排序会遍历每一项以找到最小的数字并将其放在最前面,所以即使在内存有限的情况下,它也会花费更长的时间(特别是如果有如上所述的巨大数据结构)。
https://stackoverflow.com/questions/28129472
复制相似问题