快速排序 + 分析
Posted
技术标签:
【中文标题】快速排序 + 分析【英文标题】:Quicksort + Profiling 【发布时间】:2010-04-10 14:23:26 【问题描述】:我正在尝试分析快速排序代码。代码如下:
qsort [] = []
qsort (x:xs) = qsort (filter (< x) xs) ++ [x] ++ qsort (filter (>= x) xs)
请帮帮我!
【问题讨论】:
这是一个非常标准的 Haskell 快速排序。你检查过文档和维基吗? haskell.org/ghc/docs/latest/html/users_guide/profiling.htmlhaskell.org/haskellwiki/How_to_profile_a_Haskell_program 【参考方案1】:假设您使用 GHC,您可以使用 -prof
标志启用分析(可能是 -auto-all
和 -caf-all
以获得更多详细信息)。
然后您使用./a.out +RTS -p
运行程序以在a.out.prof
中生成分析结果。
配置文件仅包括在每个函数上花费的总时间和内存。这可能不适合您,因为只有一个功能qsort
。正常编译程序运行./a.out +RTS -sstderr
可能已经有足够的信息了。
见
http://www.haskell.org/ghc/docs/latest/html/users_guide/profiling.html 了解 GHC 中的更多分析选项。 http://book.realworldhaskell.org/read/profiling-and-optimization.html 了解如何分析配置文件信息。【讨论】:
以上是关于快速排序 + 分析的主要内容,如果未能解决你的问题,请参考以下文章