- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
试图复习我对 Big-O 的理解以进行测试(显然需要非常基本的 Big-O 理解)我已经开始并正在做我书中的一些练习题。
他们给了我以下片段
public static void swap(int[] a)
{
int i = 0;
int j = a.length-1;
while (i < j)
{
int temp = a[i];
a[i] = a[j];
a[j] = temp;
i++;
j--;
}
}
我觉得很容易理解。它有两个迭代器,每个迭代器以固定的工作量覆盖数组的一半(我认为它们都以 O(n/2) 计时)
因此 O(n/2) + O(n/2) = O(2n/2) = O(n)
现在请原谅,因为这是我目前的理解,这是我尝试解决问题的方法。我在网上找到了很多 big-o 的例子,但没有一个像这样迭代器基本上同时递增和修改数组。
它有一个循环这一事实让我认为它无论如何都是 O(n)。
有人介意帮我解决这个问题吗?
谢谢
最佳答案
The fact that it has one loop is making me think it's O(n) anyway.
这是正确的。不是因为它在做一个循环,而是因为它是一个循环,它取决于数组大小的一个常数因子:大 O 表示法忽略任何常数因子。 O(n)
表示对算法的唯一影响是基于数组的大小。它实际上只需要一半的时间,对于 big-O 来说无关紧要。
换句话说:如果您的算法需要时间 n+X
、Xn
、Xn + Y
都将归结为大 O O(n)
。
如果循环的大小改变而不是常数因子,它会有所不同,但作为 n
的对数或指数函数,例如,如果大小为 100
循环为 2
,大小为 1000
循环为 3
,大小为 10000
循环为 4
。在那种情况下,它会是,例如,O(log(n))
。
如果循环与大小无关,也会有所不同。即,如果您始终循环 100
次,无论循环大小如何,您的算法都将是 O(1)
(即,在某个恒定时间内运行)。
I was also wondering if the equation I came up with to get there was somewhere in the ballpark of being correct.
是的。事实上,如果你的等式最终是某种形式的 n * C + Y
,其中 C
是某个常数,而 Y
是其他值,结果是O(n)
,不管see是大于1
,还是小于1
。
关于java - 单个 while 循环的 Big-Oh 表示法,该循环覆盖具有两个迭代器变量的数组的两半,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32431978/
.zshrc有以下几行: # Uncomment the following line if you want to change the command execution time # stamp
在R中使用正则表达式,数据示例如下: word <-c("Look at this and say: Oh ya," , "Oh thanks!", "what?!
我已经在我的 Windows 终端中安装了 oh-my-posh 和 posh-git,但是它没有跟踪任何 git 更改,如图所示。不管我做了什么改变,它只是显示如下,没有状态: 我也尝试过不使用 p
当我开始时 omzsh我明白了: [oh-my-zsh] plugin 'docker,' not found 我的 .zshrc看起来像这样: plugins=( docker, docke
macOS BigSur通过 sh -c "$(curl -fsSL https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh )"
今天我升级了我的 oh-my-zsh,然后开始出现这个错误: ~/.oh-my-zsh/lib/misc.zsh:3: parse error near `then' 在这个文件中有这个shell循环
我最近遇到了一些渐近符号,当这个问题出现时,它是 50 n logn 并且根据流行的规则获得 Big-OH 符号是简单地删除常数和低阶项。但是 50n logn 也是n^5 的 BIG-OH。那么
我按照http://ohmyz.sh/的建议安装了oh-my-zsh。 供引用, [~]$ zsh --version zsh 5.0.8 (x86_64-apple-darwin15.0) [~]$
我是终结者和 oh-my-zsh 的当前用户。在终结器中,我尝试使用多个选项卡和每个选项卡的初始命令来设置自定义布局。我按照此处描述的说明进行操作 https://amir.rachum.com/bl
我只是将 zsh 与 oh-my-zsh 一起设置。但是有一些我无法理解的奇怪行为。如果我重新启动终端(或 iTerm 2——两者中的行为相同),则不会加载 ~/.zshrc 中指定的主题。我需要做
关闭。这个问题是not about programming or software development .它目前不接受答案。 这个问题似乎不是关于 a specific programming
我刚刚安装了(很棒的)oh-my-zsh 包来自定义我的 zsh 提示,但是我遇到了这个奇怪的问题: 如果我对命令名称使用自动完成功能(例如 sou -> source ),一切都会按预期工作。但是,
我最近在我的 Mac 上安装了 zsh 和 oh-my-zsh。现在,当我尝试从终端运行 maven 命令时,出现以下错误。 $ mvn install zsh: command not found:
我试图让 ZSH 配置在 Mac OSX 上正常工作。我使用 curl 安装了它:curl -L https://github.com/robbyrussell/oh-my-zsh/raw/maste
我正在尝试让这个 zsh 主题工作:https://gist.github.com/3712874 我对其进行了一些小更改,但仍然存在一个问题。似乎直角三角形字形没有获得与文本背景相同的颜色。请参阅此
以下函数在 Big-Oh 表示法中的最坏情况运行时间是多少?有人可以解释为什么吗?谢谢。 test{ int counter = 0; for int(i=0; i<5000;++i){
我正在使用具有以下语法的 bash 脚本 $ declare -a THIS[*] 这在 zsh 中似乎是非法的(我收到“未找到匹配项:THIS[*]”错误)。谁能帮我把它翻译成 zsh? 此外 -
我正在使用 Oh My Zsh ,并且想知道是否有办法创建一个函数或别名来运行多个命令。举个例子,运行“更新”命令将更新特定的 gem,但不是全部。 最佳答案 正如您所发现的,您可以使用 ; 在单
有人可以帮我解释一下这个算法的复杂性吗?我已经尝试了一个小时,但我不明白递归的复杂性。我知道前 3 个语句是 O(1),并且认为下面的语句是 O(n/2) 和 O(n/2),所以加起来是 O(n),但
内部异常: {"Unable to locate view 'home'\r\nCurrently available view engine extensions: cshtml,vbhtml,ss
我是一名优秀的程序员,十分优秀!