gpt4 book ai didi

algorithm - 复杂度为 O(1)、O(n log n) 和 O(log n) 的算法示例

转载 作者:塔克拉玛干 更新时间:2023-11-03 02:11:37 24 4
gpt4 key购买 nike

我们日常使用的复杂度为 O(1)、O(n log n) 和 O(log n) 的算法有哪些?

最佳答案

如果您想要问题中给出的具有时间复杂度的算法/语句组示例,这里有一个小列表 -

O(1) 时间

  • 访问数组索引(int a = ARR[5];)
  • 在链表中插入一个节点
  • 压入和弹出堆栈
  • 从队列中插入和移除
  • 找出存储在数组中的树中节点的父节点或左/右子节点
  • 跳转到双向链表中的下一个/上一个元素

O(n) 时间

简而言之,所有需要线性的蛮力算法或菜鸟算法都是基于 O(n) 时间复杂度

  • 遍历数组
  • 遍历链表
  • 线性搜索
  • 删除链表中的特定元素(未排序)
  • 比较两个字符串
  • 检查回文
  • 计数/桶排序在这里你也可以找到一百万个这样的例子......

O(log n) 时间

  • 二分查找
  • 在二叉搜索树中查找最大/最小数
  • 某些基于线性函数的分而治之算法
  • 计算斐波那契数列 - 最佳方法这里的基本前提是不使用完整的数据,并在每次迭代中减小问题的大小

O(n log n)时间

“log n”的因素是通过考虑分而治之而引入的。其中一些算法是最佳优化的并且经常使用。

  • 合并排序
  • 堆排序
  • 快速排序
  • 某些基于优化 O(n^2) 算法的分而治之算法

O(n^2) 时间

如果它们的 O(nlogn) 对应物存在,这些算法应该是效率较低的算法。一般的应用在这里可能是Brute Force。

  • 冒泡排序
  • 插入排序
  • 选择排序
  • 遍历一个简单的二维数组

O(n!) 时间

  • 通过强力搜索解决旅行商问题
  • 生成部分有序集的所有无限制排列;
  • 通过拉普拉斯展开找到行列式
  • 枚举集合的所有分区

关于algorithm - 复杂度为 O(1)、O(n log n) 和 O(log n) 的算法示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1592649/

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