1

我必须在哈希表中搜索/插入多达 1000000 个元素,从 txt 文件中获取输入,并且我需要有效地执行此操作。我写了一些代码,但是输入增长需要几秒钟。

我的结构是节点列表的向量。散列键是长度为 5 的字符串。散列函数是 djb(项目似乎是均匀分布的)。

这是我使用的唯一功能:

void searchAndInsert (const string& key)
{
unsigned int i = Hash (key) % size;

for (list<Node>::iterator it = v[i].begin(); it != v[i].end (); it++)
    if (it->getNome () == key)
        return;

    v[i].push_back (Node (key));
    ++elements;
}

我该如何改进它?

谢谢大家,对不起我的英语不好!:D

4

0 回答 0