java - 关于 3-Sum 算法,数组访问次数如何计算(1/2 N^3),增长顺序如何计算(N^3)?
问题描述
我了解如何通过组合找到值 1/6 N^3,但我认为这代表了数组访问的数量。这张幻灯片说实际数字是 1/2 N^3。我知道我们只计算程序的数组访问,并且每个数组访问都是 1 个时间单位,但我不清楚波浪符号,以及如何从增长顺序的值中删除 1/2。有人可以解释一下吗?
解决方案
该if
语句执行1/6*N^3
次数。该语句的每次调用都会if
导致 3 次数组访问:a[i]、a[j]、a[k]。所以我们得到:
(1/6*N^3) * 3 = 1/2*N^3
推荐阅读
- git - git 子模块、子树或其他
- three.js - 如何缩放 THREE.JS 材料的 alphaMap?
- java - 如何使用 javafx 在服务器上上传和保存 pdf 文件?
- angular - 如何使用 CMS 文本自定义 momentjs 月、短月、周?
- java - 添加if语句后java.io.FileNotFoundException错误
- python - Python中两个字符串之间的汉明距离
- django - Heroku 中的“没有名为 xy 的模块”错误但在本地工作
- backbone.js - 更新模型属性
- javascript - 谷歌图表不显示数据
- wordpress - WordPress 片段 - 发布密码保护检查