在复杂性方面哪个更适合寻找战俘(a,b)?

时间:2017-12-04 13:00:50

标签: c++ function

哪个在运行时更好?

for(i=0;i<n;i*=c) or for(i=0;i<n;i=pow(i,c))

我发现下面的链接说pow()的复杂性是O(log(N))。

Built-in Power Function Complexity

在比较方面,我仍然不太清楚。 我最近在一次采访中遇到了这个问题。

1 个答案:

答案 0 :(得分:3)

卑鄙的愚蠢问题,并且撇开第一个循环无限且angular.module('ELOAuthentication').factory('AuthenticationService', function ($rootScope, $scope, $http) { var service = {}; service.Login = function (email, password, callback) { var Url = '/api/user/GetLoginByEmailPassword'; $http.then(Url, { email: email, password: password }).success( function (response) { var data = response.data callback(data); }).catch(function (error) { console.log('ERROR GetLoginByEmailPassword: ' + error); }); } service.SetCookie = function (email, password) { }; service.ClearCookie = function () { }; return service; }); 多次计算for (i = 0; i < n; i = pow(i, c))的事实,因为最奇怪的原因而且很可能是无限的,我希望面试官透露powic的类型,因为这很重要。

n通常以pow(x, y)实施。 exp(y log x)exp通常都是在现代CPU上使用Newton-Raphson类型算法计算的,并且具有某些起始点。结果通常以一位数的时钟周期弹出。我不相信log是O(log(N))的断言是正确的。

然而,出于以浮点计算为中心的原因,出现了令人惊讶的小积分值。然而, 对于许多科学计算并不重要,而且至少在我看来,计算机评估pow的方式是计算机科学的奇迹之一。对于这样的积分值,手动滚动算法在精度方面表现更好,但是你提出的那个可以通过使用指数通过平方从天真的O(N)改进,这可能是什么面试官希望你一直说。