对于非数值数据什么是好的搜索算法[关闭]

问题描述 投票:0回答:2
我有一个特定于订单的对象的列表,范围从几百到几十万不等,我需要一种有效地在此列表中搜索特定对象类型的方法。

我考虑过的一个可能的选择是分配一个整数类型id,并在对列表进行排序后使用二进制搜索。唯一的问题是,我可能只会在程序生命期内仅搜索对象一次,并且我需要保持对象的原始顺序,因此排序搜索然后重新排序的过程将不合理。

那是我希望有比线性搜索更有效的方法。那么,有没有人知道搜索有序(但不一定是顺序的)对象列表的任何算法或技术呢?

使用示例,列表可能会起到以下作用:["hello", "my", "name" "is", "Phil", ...]内容需要保持顺序,但不是数字顺序。

list kotlin search
2个回答
0
投票
尝试trie(前缀树)

0
投票
如果集合中的每两个元素都是可比较的,则可以将它们存储在二叉搜索树中[1]。查找为O(log(n))

[1] https://en.wikipedia.org/wiki/Binary_search_tree

© www.soinside.com 2019 - 2024. All rights reserved.