我考虑过的一个可能的选择是分配一个整数类型id,并在对列表进行排序后使用二进制搜索。唯一的问题是,我可能只会在程序生命期内仅搜索对象一次,并且我需要保持对象的原始顺序,因此排序搜索然后重新排序的过程将不合理。
那是我希望有比线性搜索更有效的方法。那么,有没有人知道搜索有序(但不一定是顺序的)对象列表的任何算法或技术呢?
使用示例,列表可能会起到以下作用:["hello", "my", "name" "is", "Phil", ...]内容需要保持顺序,但不是数字顺序。
["hello", "my", "name" "is", "Phil", ...]
O(log(n))
[1] https://en.wikipedia.org/wiki/Binary_search_tree