Julia Quicksort实施非常慢的提示?

时间:2016-02-15 18:13:49

标签: arrays julia quicksort

我使用Hoare的分区方法实现了一个Quicksort。它是来自C的一个简单端口,而C可以​​使用这种方法在几分之一秒内轻松地对数千个数字进行排序,我的Julia实现扼杀了50个数字。我用一小组15个数字尝试了它并且它正确排序所以也许我缺少一些优化。我排序的数字是随机生成的,不是有序的,所以它可以避免n ^ 2陷阱。

swap

1 个答案:

答案 0 :(得分:3)

快速浏览一下,如果输入items数组包含任何具有相同值的元素,代码中的某个地方似乎存在逻辑缺陷。我怀疑这可能是由于Julia中的数组从1开始编制索引,而不是像C中的0编制索引。也许可以查看。

如果您只想使用快速排序算法,Julia基础库中有一个可用:

a = [123,42,12,1,4]
sort!(a, alg=QuickSort)

找到它in the docs

如果您需要避免名称空间冲突,可以使用sort!(a, alg=Base.Sort.QuickSort),因为您自己的函数恰好具有完全相同的名称。