algorithm - 运行时间为 O(n^2 log n) 的算法示例?
问题描述
我必须构建一个算法,其上限为 O(n 2 log n)。任何人都可以提供任何关于 O(n 2 log n) 算法的示例吗?我似乎无法绕开它。
我对它的印象是两个嵌套的 for 循环,在第二个循环中执行 log n 操作。这个对吗?
解决方案
从技术上讲,任何渐近速度快于的算法n^2 log n
都称为O(n^2 log n)
. 示例包括“什么都不做”算法Theta(1)
、二分搜索Theta(log n)
、线性搜索Theta(n)
、冒泡排序Theta(n^2)
。
您描述的算法O(n^2 log n)
也是Omega(n^2 log n)
如此,因此Theta(n^2 log n)
:
for i in range(n):
for j in range(n):
# binary search in array of size n
推荐阅读
- nsis - 未应用 NSIS SelectFileDialog 过滤器
- ruby-on-rails - 在使用签名 s3 url 的同时使用 CloudFront 提供私有内容
- google-sheets - 用于 OFFSET(range_name, 0, 0) 的 Google 表格(或 Excel)函数
- twig - TWIG 表单模板:在 attr 中调用变量
- google-cloud-firestore - 复制数据与将所有数据存储在一个大集合中?火库
- python - 删除子字符串时遇到问题
- git - 无法 git checkout 我的分支有 pdf 文件(带有日期时间戳)
- firebase - 如何允许特定的 Firestore 用户帐户访问由其他用户创建的文档?
- java - 我们可以在没有源代码的情况下将 Debug build APK 转换为 release Build
- node.js - 将值从数据库传递到 vue 组件并将其分配给变量