存储名字和姓氏的算法和数据结构

kla*_*aks 2 language-agnostic algorithm contacts binary-search-tree data-structures

有没有一种有效的方法来存储数据结构中的名字和姓氏,以便我们可以使用名字或姓氏进行查找?我会考虑一个带名字的二叉搜索树.搜索名字会很有效率.但是在尝试搜索姓氏时效率并不高.我们还可以再考虑一个姓氏的BST.有效实施它的任何想法?

如果问题是,怎么办?

字符串名称[] = {"A B","C D"};

要求是能够在运行时动态扩展此目录,而无需持久存储.该目录最终可以增长到数百或数千个名称,并且必须可以按名字或姓氏进行搜索.

现在我们不能存储哈希表.有任何想法吗?

Pet*_*der 7

两个哈希表:一个从名字到人,一个从姓到人.

简单是最好的.

  • 嗯它很快:任一查找的平均O(1).插入和移除平均为O(1),空间为O(n).您没有存储两次相同的数据,而是存储查找表.我不认为你会比这更渐进.我不知道你会有多少联系,但我不认为这是一个内存瓶颈. (2认同)