在Perl哈希中查找项目的时间复杂度是多少?

Cha*_*ndu 2 perl hash

假设我有一个包含n个单词的文件.当我读取文件中的每个单词时,我将它存储在哈希(在Perl中)中.当我回过头来查找哈希中的单词时,在哈希中查找字符串(单词)的时间复杂度是多少?

例如:

my %seen = ();
@arr=("one","two","three");
foreach $item (@arr){
    if($seen{$item}) {//do something}
}
Run Code Online (Sandbox Code Playgroud)

在这个程序中,我正在查找哈希中的项目.在哈希中查找字符串的时间复杂度是多少?

另外,有没有详细说明如何在Perl中实现哈希?(内部事情发生在哈希?或者它只是一个关联数组)

fri*_*edo 11

Perl哈希提供恒定时间查找.它们被实现为真正的哈希表(根据需要自动重新调整),而不是关联数组.

  • @sekhar,键_only_可以是一个字符串.当用作散列键时,数字和引用将转换为字符串. (6认同)
  • Perl哈希_are_关联数组.[associative array](http://en.wikipedia.org/wiki/Associative_array)是一种抽象数据类型; 哈希表是实现它的一种方法. (2认同)