如果您认为这不属于这里,请随意标记为无关紧要。 我有一个用Python和Haskell编写的简单脚本。 它读取一个具有1,000,000换行分隔整数的文件,将该文件parsing成整数列表,快速sorting,然后将其写入到sorting的不同文件中。 这个文件与未sorting的文件格式相同。 简单。 这里是Haskell: quicksort :: Ord a => [a] -> [a] quicksort [] = [] quicksort (p:xs) = (quicksort lesser) ++ [p] ++ (quicksort greater) where lesser = filter (< p) xs greater = filter (>= p) xs main = do file <- readFile "data" let un = lines file let f […]
快速sorting和堆sorting都可以进行sorting。 哪个更好? 什么是优先的应用和案例?
所以我想我会因为问这样一个微不足道的问题而被埋葬,但是我有点困惑。 我已经在Java和C中实现了quicksort,我正在做一些基本的比较。 该graphics是以两条直线出现的,其中C是比Java对应的超过100,000个随机整数更快的4ms。 我的testing代码可以在这里find; Android的基准 我不确定(n log n)行会是什么样子,但我不认为它会是直的。 我只是想检查这是预期的结果,我不应该试图find我的代码中的错误。 我把这个公式固定在excel中,而基数10似乎是一开始就有一个扭曲的直线。 这是因为log(n)和log(n + 1)之间的差异是线性增加的吗? 谢谢, GAV
我对python是完全陌生的,我正试图在其中实现quicksort。 有人可以帮我完成我的代码吗? 我不知道如何连接三个数组并打印它们。 def sort(array=[12,4,5,6,7,3,1,15]): less = [] equal = [] greater = [] if len(array) > 1: pivot = array[0] for x in array: if x < pivot: less.append(x) if x == pivot: equal.append(x) if x > pivot: greater.append(x) sort(less) sort(pivot) sort(greater)