Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 此函数的时间复杂度是否为O(logn)?_Javascript_Algorithm_Time Complexity - Fatal编程技术网

Javascript 此函数的时间复杂度是否为O(logn)?

Javascript 此函数的时间复杂度是否为O(logn)?,javascript,algorithm,time-complexity,Javascript,Algorithm,Time Complexity,我正在努力,以下是我提出的解决方案: var findKthLargest=函数(nums,k){ //var tmp=nums.slice(); var迭代=0; while(迭代

我正在努力,以下是我提出的解决方案:

var findKthLargest=函数(nums,k){
//var tmp=nums.slice();
var迭代=0;
while(迭代max){
max=nums[i];
cut=i;
}
}
数量拼接(切割,1);
迭代++;
}
返回最大值;

};
k
while()的
while()循环迭代(我认为,对于(var j=0;jfor(var j=0;j

然后,第一次迭代执行
n
for
循环的
迭代,并且
nums。拼接(剪切,1)
O(n)
,因为它必须将所有数组元素从
cut
移动到
n
O(2n)
O(n)
相同,因为在大O计算中忽略了常数因子

第二次迭代执行
n-1
迭代。这也是
O(n)
,因为我们忽略了big-O表示法中的常量调整。这同样适用于
拼接


最后的结果是
O(k*n)
,因为你有
k
外循环的迭代,而内循环都是
O(n)
。当
k>=n
时,最坏的情况是
O(n^2)

k
while()
循环的迭代(我认为,更习惯地写为
for(var j=0;j

然后,第一次迭代执行
n
for
循环的
迭代,并且
nums。拼接(剪切,1)
O(n)
,因为它必须将所有数组元素从
cut
移动到
n
O(2n)
O(n)
相同,因为在大O计算中忽略了常数因子

第二次迭代执行
n-1
迭代。这也是
O(n)
,因为我们忽略了big-O表示法中的常量调整。这同样适用于
拼接


最后的结果是
O(k*n)
,因为你有
k
外循环的迭代,而内循环都是
O(n)
。当
k>=n
时,最坏的情况是
O(n^2)

拼接()
操作是线性的(O(n))。出于其他原因,这绝对不是O(log(n))。啊,谢谢。所以应该是O(nlogn)你认为它的哪一部分是
O(log(n))
循环的
也是
O(n)
。整个过程是
O(k*n*n)
那些实际上应该是
O(n+(n-1)+(n-2)…
.splice()
操作是线性的(O(n))。出于其他原因,这绝对不是O(log(n))。啊,谢谢。所以应该是O(nlogn)你认为它的哪一部分是
O(log(n))
循环的
也是
O(n)
。整个过程是
O(k*n*n)
那些实际上应该是
O(n+(n-1)+(n-2)