Algorithm 渐近符号图的解释
我目前正在学习一门算法课程,我遇到了下图 我很难理解f(n)代表什么,g(n)意味着什么,以及c和n0意味着什么。此外,我想知道它们是如何与边界概念相关的,以及这意味着什么Algorithm 渐近符号图的解释,algorithm,time-complexity,complexity-theory,Algorithm,Time Complexity,Complexity Theory,我目前正在学习一门算法课程,我遇到了下图 我很难理解f(n)代表什么,g(n)意味着什么,以及c和n0意味着什么。此外,我想知道它们是如何与边界概念相关的,以及这意味着什么 大多数教程一开始只是解释上述术语是如何关联的,而不是它们的含义想象一下您编写了一个程序来对列表进行排序。您的程序输入一个列表,执行一段时间的计算,然后输出一个排序的列表 “big-O”表示法f(n)=O(g(n))是比较两个函数f和g的一种方法 在处理数字时,您习惯于进行比较,例如“x
大多数教程一开始只是解释上述术语是如何关联的,而不是它们的含义想象一下您编写了一个程序来对列表进行排序。您的程序输入一个列表,执行一段时间的计算,然后输出一个排序的列表 “big-O”表示法
f(n)=O(g(n))
是比较两个函数f
和g
的一种方法
在处理数字时,您习惯于进行比较,例如“xf(n)=O(g(n))
通常意味着“存在一个值n0和一个乘法常数c,只要n
大于n0,f(n)
就会小于cg(n)
此定义与算法的复杂性分析相关。假设您编写了一个对列表进行排序的算法。让我们调用f(n)对n
项列表进行排序时,您的算法所需的最大操作数。您想证明您的算法是有效的。您想做出诸如“f(n)=O(n^2)之类的陈述,这大致意味着“如果列表的大小乘以10,那么执行时间将乘以不到100”。这并没有给出确切的运算次数——可能是f(n)=4n^2,或者可能是f(n)=(n^2-n)/2。但谁在乎确切的数字呢。重要的是,如果列表长10倍,则执行时间最多将长100倍