我有一个Text
s列表,它们按排序顺序。在我看来,我可以通过将它实现为二分搜索而不是线性搜索来编写更快的elem
版本。这样的版本是否已经存在?更快`elem`在Haskell中使用二进制搜索
3
A
回答
12
6
二进制搜索需要随机访问。由于haskell列表不提供随机访问(访问中间的元素需要线性时间),二进制搜索不会有帮助。
如果您的数据位于Array
(提供随机访问),二进制搜索将是可行的。
1
我有一个文本列表,它们按排序顺序。
改变数据结构,你的算法将是显而易见的(用布鲁克斯来解释)。
Haskell尤其如此,我们的数据结构通常不是以可变数组的形式出现的(也就是说,您不必依靠指针黑客行为)。
如果您使用例如一个堆或树来存储你的文本,你就可以实现简单的实现。你可以利用他们排序的事实来提供更快的插入。
相关问题
- 1. Haskell - 二进制搜索树
- 2. 使用二进制搜索
- 3. CSV文件,二进制格式更快?最快的搜索?
- 4. 使用二维数组在C++中进行二进制搜索
- 5. 使用javascript进行二进制搜索
- 6. 二进制搜索
- 7. 二进制搜索
- 8. 二进制搜索
- 9. 二进制搜索
- 10. 通用二进制搜索++
- 11. 二进制搜索用C
- 12. 二进制搜索树内的二进制搜索树
- 13. 二进制搜索是/是二进制搜索贪婪算法?
- 14. 德尔福如何更快地搜索二进制文件?
- 15. 如何在二维数组中使用二进制搜索?
- 16. 使用二进制搜索错误?
- 17. 使用类的二进制搜索树
- 18. Python的RotationCount使用二进制搜索
- 19. 使用Python的二进制搜索
- 20. 使用python执行二进制搜索
- 21. 二进制搜索查询使用SQL
- 22. 在C++中使用Stack进行二进制搜索树的深度搜索
- 23. 在Java中使用二进制搜索实现二进制插入排序
- 24. 在WebGL中使用for循环进行二进制搜索
- 25. 线性搜索或二进制搜索或二叉搜索树
- 26. 二进制搜索树,搜索方法
- 27. 二进制搜索树搜索操作
- 28. 二进制搜索树 - 搜索范围
- 29. Swift二进制搜索树搜索
- 30. 在JavaScript中执行二进制搜索
['Data.Set'](http://www.haskell.org/ghc/docs/latest/html/libraries/containers-0.4.2.1/Data-Set.html)可能是更合适的容器切换到。 – dave4420 2012-04-17 09:40:04
@ dave4420:加了,谢谢。我完全忘了提及它:) – 2012-04-17 09:45:42
['Data.HashSet'](http://hackage.haskell.org/packages/archive/unordered-containers/latest/doc/html/Data-HashSet.html)可能是一个可能性也是。 – huon 2012-04-17 09:46:19