A(q, cList){
for(i=1;i<q;i++){ // q is the number of keywords in the query
B(cList[i]);
}
}
B(c){
for(j=1; j<c;j++){ // c specifies how many times the keyword is included, and taken as input
do something
}
}
For example:
A(2, [5, 7]) // 2 keywords are searched, that are included in 5 and 7 documents
A(2, [100, 1500]) // 2 keywords are searched, that are included in 100 and 1500 documents
A(3, [1, 10000, 1500]) // 3 keywords are searched, that are included in 1, 10000 and 1500 documents
外部循环取决于q。但是我不确定B的复杂度吗?
每个关键字的c值更改。 我认为这也取决于c值。
那么,A的复杂度是多少?
答案 0 :(得分:1)
这里,我们有2个输入,例如,输入A(2,[1,100])
增加了复杂性。外循环迭代将由函数A
的第一个参数(此处为2)决定,将其称为n
,至于函数B
中的第二个循环,迭代次数将由函数A
的第二个参数,在这种情况下为[1,100]
。通过这些,我们将通过O( n * max(cList[]))
来计算最坏情况的复杂度,其中max取cList
的最长元素的长度。
我本来将这种复杂性分析称为过于悲观,但是当我们渐近地认为您的运行时间将主要受cList
中的最大值的影响。