Questions tagged «amortized-analysis»

9
是否存在带有提取的优先级队列?
有很多数据结构实现了优先级队列接口: 插入:将元素插入结构 Get-Min:返回结构中的最小元素 Extract-Min:删除结构中的最小元素 实现此接口的常见数据结构是(min)堆。 通常,这些操作的(摊销)运行时间为: 插入:(有时)O(log n )O(1 )O(1)\mathcal{O}(1)O(对数n )O(log⁡n)\mathcal{O}(\log n) Get-Min:O(1 )O(1)\mathcal{O}(1) 提取最小值:O(对数n )O(log⁡n)\mathcal{O}(\log n) 例如,斐波那契堆可达到这些运行时间。现在,我的问题是: 是否存在具有以下(摊销)运行时间的数据结构? 插入:O(对数n )O(log⁡n)\mathcal{O}(\log n) Get-Min:O(1 )O(1)\mathcal{O}(1) 提取最小值:O(1 )O(1)\mathcal{O}(1) 如果我们可以在给定排序输入的情况下在时间内构造这样的结构,那么我们可以例如在比使用“通常”优先级队列的路口快得多。o (nO(n )O(n)\mathcal{O}(n)ø (Ñ日志ñ)o(nlog⁡n)o\left(\frac{n}{\log n}\right)

2
为什么C的void类型不同于Empty / Bottom类型?
维基百科以及我发现的其他来源都将C的void类型列为单位类型,而不是空类型。我觉得这很混乱,因为在我看来,它void更适合于空/底类型的定义。 void据我所知,没有价值观存在。 返回类型为void的函数指定该函数不返回任何内容,因此只能执行某些副作用。 类型的指针void*是所有其他指针类型的子类型。同样,void*在C中进行来回转换是隐式的。 我不确定最后一点是否可以作为void空类型的参数,void*或多或少是与无关的特例void。 另一方面,void它本身不是所有其他类型的子类型,据我所知,这是将类型作为底部类型的要求。
28 type-theory  c  logic  modal-logic  coq  equality  coinduction  artificial-intelligence  computer-architecture  compilers  asymptotics  formal-languages  asymptotics  landau-notation  asymptotics  turing-machines  optimization  decision-problem  rice-theorem  algorithms  arithmetic  floating-point  automata  finite-automata  data-structures  search-trees  balanced-search-trees  complexity-theory  asymptotics  amortized-analysis  complexity-theory  graphs  np-complete  reductions  np-hard  algorithms  string-metrics  computability  artificial-intelligence  halting-problem  turing-machines  computation-models  graph-theory  terminology  complexity-theory  decision-problem  polynomial-time  algorithms  algorithm-analysis  optimization  runtime-analysis  loops  turing-machines  computation-models  recurrence-relation  master-theorem  complexity-theory  asymptotics  parallel-computing  landau-notation  terminology  optimization  decision-problem  complexity-theory  polynomial-time  counting  coding-theory  permutations  encoding-scheme  error-correcting-codes  machine-learning  natural-language-processing  algorithms  graphs  social-networks  network-analysis  relational-algebra  constraint-satisfaction  polymorphisms  algorithms  graphs  trees 

2
具有在摊销时间内搜索,插入和删除的数据结构
是否有数据结构可维护在摊销时间内支持以下操作的有序列表?O(1)Ø(1个)O(1) GetElement(k):返回列表的第个元素。kķk InsertAfter(x,y):将新元素y插入x后面的列表中。 Delete(x):从列表中删除x。 对于最后两个操作,您可以假定x是直接作为指向数据结构的指针而给出的。InsertElement返回y的相应指针。InsertAfter(NULL,y)在列表的开头插入y。 例如,从一个空的数据结构开始,以下操作将更新有序列表,如下所示: InsertAfter(NULL,a) ⟹⟹\implies [一种] InsertAfter(NULL,b) ⟹⟹\implies [b,a] InsertAfter(b,c) ⟹⟹\implies [b,c,a] InsertAfter(a,d) ⟹⟹\implies [b,c,a,d] 删除(c) ⟹⟹\implies [b,a,d] 在这五个更新之后,GetElement(2)应该返回d,而GetElement(3)应该返回一个错误。

2
为什么C ++向量中的push_back会被摊销?
我正在学习C ++,注意到向量的push_back函数的运行时间是恒定的“摊销”。该文档进一步指出:“如果发生重新分配,则重新分配本身在整个大小上都是线性的。” 这不应该意味着push_back函数是,其中是向量的长度吗?毕竟,我们对最坏情况分析感兴趣,对吧?O(n)O(n)O(n)nnn 我想至关重要的是,我不知道形容词“摊销”如何改变运行时间。

1
NP难题是否可以平均为多项式?
我想知道在一般情况下是否存在难题,即“多项式”,我认为有两种解释方法?ñPNPNP 如果,是否有一种算法可以解决N P难问题,其摊销(平均情况)运行时间为O (n k),且常数k为?P≠ NPP≠NPP \neq NPñPNPNPØ (ñķ)O(nk)O(n^k)ķkk 是否存在 -hard 或B P P甚至P P中的问题?ñPNPNP乙PPBPPBPPPPPPPP 任何人都可以回答或提供参考答案中的任何一个吗?

1
潜在函数二进制堆提取最大值O(1)
我需要帮助来确定最大堆的潜在函数,以便在摊销时间内完成提取最大。我还要补充一点,就是我对潜在方法没有很好的了解。O(1)O(1)O(1) 我知道insert函数应该“付出更多”以减少提取的成本,这必须要考虑到堆的高度(如果给出了堆应该是或)⌊log(n)⌋⌊log⁡(n)⌋ \lfloor \log(n) \rfloor 2log(n)2log⁡(n)2\log(n)∑nk=12log(k)∑k=1n2log⁡(k) \sum_{k=1}^n 2\log(k)
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.