java - 有序数组删除操作——大O分析

标签 java arrays algorithm

我找到了这个link有序数组操作的大 O 分析。删除操作在链接中被归类为线性时间。

实际代码对每个输入执行 2 个操作。在一般情况下,执行一个二分查找操作来查找要删除的值,然后执行第二个操作,在删除后将其余值向上移动。 二分搜索的故事对数时间和向上移动值是线性时间,所以我认为运行时分析的平均情况至少是 O(n logn),这是对数线性时间而不是线性时间。

我错过了什么?

最佳答案

搜索操作和删除操作是单独的操作,每个操作执行一次。

因此,您应该将它们的运行时间相加,而不是相乘。

因此你得到:

O(logN) + O(N) = O(N)

关于java - 有序数组删除操作——大O分析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54344331/

相关文章:

java - Gradle 是否可以在无需重组目录的情况下处理遗留项目的构建?

java - AMQP 中的 channel 和链接有什么区别?

java - 在 Android Studio 中方法自动完成后禁用左括号

c# - 对象与对象[]

javascript - javascript中的关联数组难题

algorithm - 嵌套 for 循环的运行时复杂度

java - Spring Webflow - spring-context.xml 文件错误

arrays - 将 3d 数组中的工作表行绑定(bind)为 2d 数组

arrays - 如果给定值,则查找数组索引

algorithm - 带摩擦力的运动算法