不同底层结构的映射效率比较

  • 映射基于底层实现不同,而造成的性能不同

    1. 基于链表的映射
    2. 基于二分搜索树的映射
methodLinkedListMapBSTMapBST[avr Time]worst
增addO(n)O(h)O(logn)O(n)
删removeO(n)O(h)O(logn)O(n)
改setO(n)O(h)O(logn)O(n)
查getO(n)O(h)O(logn)O(n)
查containsO(n)O(h)O(logn)O(n)

h指代的是二分搜索树的deepth
- 需要注意的是:在BST最坏的情况下【不考虑AVL】,是只有一个分支的树形结构,时间复杂度也为O(n)

在满二叉树的情况下,h与节点n之间的关系。

N = 2^h-1

h = log_2(n+1)

O(h)=O(log_2(n))=O(log(n))

二分搜索树最多只需要查找其深度个节点就可以查询到相应位置。

时间复杂度分析

logn的复杂度是非常快的

Data SizelognnGap
n = 164164倍
n=1024101024100倍
n=100w20100w5w倍

所以需要再需要引入avl平衡二叉树

  • 有序映射:基于搜索树实现【avl】
  • 无序映射:基于hash表实现【hashMap】
    • 实际情况下无序映射不会使用链表实现
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值