常见数据结构的查找、插入、删除时间复杂度
来源:互联网 发布:计算机三级软件测试 编辑:程序博客网 时间:2024/05/24 04:28
查找 插入 删除
数组 o(n) o(1) o(n)
有序数组 o(lgn) o(n) o(n)
链表 o(n) o(1) o(n)
有序链表 o(n) o(n) o(n)
二叉树最坏 o(n) o(n) o(n)
二叉树一般 o(lgn) o(lgn) o(lgn)
平衡树 o(lgn) o(lgn) o(lgn)
哈希表 o(1) o(1) o(1)
(1)向一个有序数组中插入一个数的时间复杂度是多少?
查找插入位置如果用遍历查找的是O(n),用二分查找是O(log2n)。
但是数组的插入操作需要将插入位置后的元素全部后移一位,这需要O(n)。
所以总的时间复杂度是O(n)。(O(n)+O(n)=O(n),O(log2n)+O(n)=O(n))
(2) 有序链表查找的时间复杂度是O(n)的原因是什么?
折半查找对链表而言根本不能达到O(logN)的效率。只有当访问集合中任何一个元素的时间是常量O(1)时间时,折半查找才能达到O(logN),而链表访问其中元素的平均时间是O(N)即线性时间。对用数组构造的集合才能使用折半查找。
阅读全文
1 0
- 常见数据结构的查找、插入、删除时间复杂度
- 常见的数据结构与算法时间复杂度
- 用Lua实现插入、删除和查找时间复杂度为O(1)的集合
- 用Lua实现插入、删除和查找时间复杂度为O(1)的集合
- 线性表、栈、队列等查找、删除、插入的时间复杂度O()
- 线性表、栈、队列等查找、删除、插入的时间复杂度O()
- c语言实现线性表的建立,初始化,插入,删除,查找,遍历以及时间复杂度分析
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- 常见数据结构查找、插入、删除、遍历性能比较 常见排序算法的比较(图)
- 数据结构 二叉排序树的创建,查找,插入,删除
- 重温数据结构:二叉排序树的查找、插入、删除
- 常见的时间复杂度
- 常见的时间复杂度
- 7. 二叉排序树的搜索、插入、删除,时间复杂度
- 单链表插入删除元素时间复杂度探究
- Surprising Strings<map集合使用>
- C语言 static关键字
- RabbitMQ 消息轮询和消息确认机制
- java获取本地IP和服务器IP
- mysql增删改查 常用脚本
- 常见数据结构的查找、插入、删除时间复杂度
- Error:Execution failed for task ':app:transformClassesWithJarMergingForDebug'
- bootstrap modal调用codemirror探索实践
- PaxCompiler脚本编译的一些要注意的问题
- localStorage记住用户密码
- Android ProgressBar的样式
- 不容易系列之二
- Ubuntu序列化重命名图片
- POJ 3253:Fence Repair