首页 文章

计算函数的空间复杂度和时间复杂度

提问于
浏览
-2

作为课程作业的一部分,我需要计算程序的复杂性 . 我想计算下面程序的空间复杂度和时间复杂度 . 我如何计算它?如果有人可以详细解释它,对我来说真的很有帮助 .

sub find_multi_string {
    my ($file, @strings) = @_; 
    my $fh;
    open ($fh, "<$file");
    #store the whole file in an array
    my @array = <$fh>;

    for my $string (@strings) {
        if (grep /$string/, @array) {
            next;
        } else {
            die "Cannot find $string in $file";
        }   
    }   

    return 1;
}

1 回答

  • 0

    空间复杂性:识别“大量”或“重复”发生的数据 . 为这些数量分配数字,例如,N =文件中的行数,或M =数组中的元素数 . 添加这些数量 . 注意数据结构的动态创建:如果你有一个N个数字的数组和M个数字中的另一个,你创建了一个包含所有产品的表格,那么表格的空间复杂度就是......

    时间复杂性:识别重复的操作 . 有些可能是隐藏的(如在Perl中),有些是明确的,例如在for循环中 . 使用空间复杂度的结果来量化这些重复 . 循环可以提前终止:然后您必须估计平均执行时间 . 循环发生一个接一个加起来 . 如果你知道一个循环体被执行N次并且这个体包含一个执行M次的内部循环,那么该内循环的主体被执行 - 多久一次?

    很多时候,它只是一个简单的计数,簿记和简单算术练习,尽管有几个例子,一个好的答案需要大量的数学 .

    不是你的情况!

相关问题