首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >字符串索引的数据结构?

字符串索引的数据结构?
EN

Stack Overflow用户
提问于 2010-10-11 13:14:52
回答 3查看 535关注 0票数 3

我正在寻找一种针对范围查询和空间使用进行了高度优化的字符串(UTF-8)索引的数据结构。谢谢!

详细说明:我有任意长度的utf-8字符串的列表,我需要索引。我将只使用范围查询。

例如:我有字符串-苹果,猿,黑,酷,黑。

查询应该是这样的-- "get from 2 to 3 element in desc order“或"get strings start by 'ap'”

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-10-11 13:35:32

既然你提到了“相对静态”,一个简单的排序数组就可以做你想要的一切,并且在空间和时间上都是高度优化的。

"get from 2 to 3 element in desc order“只是简单地查找对应的数组索引。

“获取以‘ap’开头的字符串”可以通过二进制搜索来完成。搜索将在第一个以“ap”开头的字符串或之前停止,从那里开始,您只需遍历,直到找到所有这样的字符串。

票数 3
EN

Stack Overflow用户

发布于 2010-10-11 18:28:43

你查过Tries了吗?

结构应该适合你的需要-范围和‘开始于’都应该是容易的,加上内存消耗也很好。

票数 1
EN

Stack Overflow用户

发布于 2010-10-12 07:23:49

我确实喜欢casablanca的回答:由于您的数据是相对静态的,排序列表应该是可以的。

如果你想要更容易更新的东西,你可以使用blist.sortedlist

你甚至可以使用ZODB的BTrees,它已经包含了你想要的大部分功能(即范围搜索)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3903664

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档