【问题标题】:Asymptotic Estimate for integer division [closed]整数除法的渐近估计
【发布时间】:2013-04-25 16:04:33
【问题描述】:
k = n; //integer division
while(k > 1) {
    std::cout << k; 
    k=k/2;
}

我需要找出作为 n 的函数的渐近估计。

【问题讨论】:

  • 问题是......?
  • 问题是我需要该函数的渐近估计。
  • @user2340034:而且我需要吃东西,否则我会饿死的。我写的上一句不是问句,是陈述句,你写了两遍也不是。请编辑此内容以提出其他人可以回答的问题。代码 +“我需要一些东西”不是有效的 Stack Overflow 问题。
  • @talonmies:您是否真的认为将某事表述为:“XXX 是什么?”而不是“我需要XXX。”?我觉得被当作一个无脑编译器来对待是一种侮辱,只有在使用正确的语法和标点符号时才能识别问题。
  • 其实这里的主要问题是“渐近估计”不是一个明确的术语。从表面上看,它似乎指的是函数的值,而不是算法的计算复杂度。

标签: c++ c computer-science asymptotic-complexity


【解决方案1】:

复杂度是对数的。

假设 K 为非负数,除以 2 相当于右移一位。因此,k 变为 0 之前的最大迭代次数是k 中的位数。更具体地说,设置的k 中最高有效位的位置(即1)将决定循环中执行的迭代次数。

由于循环中的操作(可能)是常数复杂度,对数迭代次数直接导致对数复杂度。

【讨论】:

  • 思考问题如何产生答案,这不是很有趣吗?
猜你喜欢
  • 2015-06-05
  • 2017-07-20
  • 1970-01-01
  • 1970-01-01
  • 2015-03-22
  • 1970-01-01
  • 1970-01-01
  • 2011-03-07
  • 1970-01-01
相关资源
最近更新 更多