我有重复功能 T(n)= T(n-c)+ T(c)+n²
您可以解释在下列情况下如何计算递归树的高度:
我认为在第一种情况下,T(n)成本为θ(n³),在第二种情况下为θ(n²),是不是?
答案 0 :(得分:1)
1)如果c
是一个常数,那么你可以忽略T(c)
项,它确实是θ(n³)
。
2)当它是n/3
或其他因素时,查找T()
上n
最大系数的T
项 - 这会导致最长的分支。然后通过用这一个替换所有其他T(2n/3) + T(n/3) + n² < 2T(2n/3) + n²
项来给出时间复杂度的上限。
示例:θ(n²)
,Master theorem这确实是#!/usr/bin/perl -w
#
use 5.010;
use strict;
use Data::Dumper;
use Getopt::Long qw(GetOptions);
my @person = [ "John", "Barnes" ] ;
my @results = [ ['Chemisty', '87'], ['French', '40'], ['Maths', '90'] ] ;
my @record = [ @person, @results ];
my $person_len = scalar @person;
my $results_len = scalar @results;
my $record_len = scalar @record;
print "======= PERSON [$person_len] ===========\n";
print Dumper @person;
print "========= RESULTS [$results_len] ===========\n";
print Dumper @results;
print "============= RECORD [$record_len] =============\n";
print Dumper @record;
print "**=========================**\n";
。