【发布时间】:2010-09-19 00:50:35
【问题描述】:
计算两个长度为n的向量之间的点积的算法的时间和空间复杂度是多少?
【问题讨论】:
-
您的老师正在探究的是,点积是线性时间
O(n)运算,其中 n 是两个向量的长度。这假设您将乘法和加法视为常数时间运算。从技术上讲,*和+不是恒定时间。如果你想用图灵机的时间复杂度分割头发并超级精确,那么将m定义为被相乘的数字的平均长度,将a定义为被添加的数字的平均长度。复杂度变为:O(n * (m ^ 1.465) + ((n-1) * log(a))),其折叠为:O(n*m + n*log(a))。
标签: algorithm vector complexity-theory