ABEND中标准内部表APPEND的时间复杂度是多少?

时间:2015-12-29 22:32:33

标签: time-complexity abap

APPAP标准内部表在ABAP中的时间复杂度是多少?

代码示例:

REPORT zz_complexity_1.

DATA: lt_tab TYPE STANDARD TABLE OF string.

APPEND 'a sample text' INTO lt_tab.

我使用内部表实现了堆栈。我想确定我理解堆栈实现的时间复杂性。

1 个答案:

答案 0 :(得分:4)

我希望它与追加ArrayList相同。

这意味着它的时间复杂度为Θ(1)amortized摊销常数时间意味着某些操作需要的时间比恒定时间长,但这些操作很少,不会影响我们测量它的方式。如果我们append万亿项,它将非常接近,但不完全是恒定时间。

当定义标准表时,我们不知道它将包含多少行,因此它可能只分配足够的内存来容纳 X 行。一旦 X 行在表中,下一个append操作将分配一个额外的 X 行(假设每次都加倍,因为这是大多数语言的工作方式) 。分配完所有新内存后,下一个append将在内存中为 2X 行分配空间,然后 4X ,然后 8X

Amortized Push Operations

https://en.wikipedia.org/wiki/Amortized_analysis#Dynamic_Array