假设n是描述问题规模的非负整数,下面程序片段的时间复杂度为( )。 Void fun(int n){ int i,j,k; for(i=1,i

admin2019-07-18  47

问题 假设n是描述问题规模的非负整数,下面程序片段的时间复杂度为(    )。
    Void fun(int n){
    int  i,j,k;
    for(i=1,i<=n;i++)
    for(j=1;j<=n; j++){
    k=1;
    while(k<=n)
    k=5*k;
    }
    }

选项 A、O(n2log2n)
B、O(nlog5n)
C、O(n2log5n)
D、O(n3)

答案C

解析 首先抓基本运算语句,即k=5*k;设其执行时间为T(n)。对于j每循环一次,该语句的执行次数为m,有5m≤n,即m≤log5n。所以,
    T(n)=∑i=1nj=1nm=m∑i=1nj=1n=mn2=n2log5n=O(n2log5n)
转载请注明原文地址:https://kaotiyun.com/show/QxCi777K
0

相关试题推荐
最新回复(0)