Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/12.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
Algorithm 整个算法的时间复杂度是多少?_Algorithm_Math_Big O_Asymptotic Complexity_Mod - Fatal编程技术网

Algorithm 整个算法的时间复杂度是多少?

Algorithm 整个算法的时间复杂度是多少?,algorithm,math,big-o,asymptotic-complexity,mod,Algorithm,Math,Big O,Asymptotic Complexity,Mod,我不熟悉渐近符号,这里是算法。时间复杂度最糟糕的情况是什么?为什么 F(A,B) { //A and B are positive while A>0 print(A mod B) A=A div B } 这方面的时间复杂性: F(A,B) { //A and B are positive while A>0 A=A/B } 等于循环将执行的次数,我们称之为l,等于B除以A使“A>0”为false的次数 由此可知: Knuth的书《计算机编

我不熟悉渐近符号,这里是算法。时间复杂度最糟糕的情况是什么?为什么

F(A,B) {  //A and B are positive
  while A>0 
    print(A mod B)
    A=A div B
}

这方面的时间复杂性:

F(A,B) {  //A and B are positive
  while A>0 
    A=A/B
}
等于循环将执行的次数,我们称之为
l
,等于B除以A使“A>0”为false的次数

由此可知:

Knuth的书《计算机编程的艺术》(第2卷)4.3.1中的算法D在O(m)步中执行任何长除法,其中
m
是A的位数,因此我们有一个上限

因此,时间复杂度为:*O(l*m)*

现在:

print(A mod B)
假设IO是常数(这在现实世界中当然是不正确的),你需要模本身的复杂性,从中我们知道它是:

O(日志A日志B)

并将运行
l

因此,我们:


这不是一个很好的问题。首先,如果B是统一的,那么算法将永远不会完成。假设B必须是2或更大。所以我们有O(loga)步。但现在的问题是,该司本身是否是一项“行动”。如果A和B是无界的,那么从本质上讲它也必须是对数的。但通常情况下,代码将运行在以32位或64位实现所有除法的处理器上,并且不能将超出范围的数字除法。因此,一般来说,我们称部门为“业务”


如果我们说除法是对数相合的,而B是小的,那么我们就是O(loga)^2O(l*(m+loga logb))@WILLIAM,这是最后一句话。顺便说一句,别忘了接受你得到的答案之一!;)