gpt4 book ai didi

java - ArrayList 恒定时间和线性时间访问

转载 作者:搜寻专家 更新时间:2023-10-31 08:09:11 25 4
gpt4 key购买 nike

我一直在学习 Java SE 7 的技巧。我已经阅读了关于 ArrayList 的声明。 :

  • 访问恒定时间内执行。
  • 插入/删除线性时间内执行。

我想知道什么是恒定线性时间访问?

最佳答案

恒定时间意味着每个操作执行所需的时间有一个硬性界限。

线性时间意味着ArrayList越长是(它包含的对象越多)操作将花费的时间越长。连接是线性的,即 time(op) <= CONST * #elements

在复杂性分析中,我们将其称为big O notation线性时间是O(n) , 常数时间为 O(1)


原因是:

  • 访问是普通数组访问,并且在 RAM 机器(例如 PC)中以恒定时间完成。
  • 插入/删除 - 如果它不在最后一个元素中,则需要移动所有以下元素:(插入需要向右移动,删除需要向左移动) - 因此您实际上需要线性数量的 OP 来执行插入/删除(除非是最后一个元素)

关于java - ArrayList 恒定时间和线性时间访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13288854/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com