LinkedListSet 和 BSTSet 性能分析

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

    1. 基于链表的集合
    2. 基于二分搜索树的集合
method LinkedListSet BSTSet
增add O(n)【需要查】 O(h)[平均]
查contains O(n) O(h)[平均]
删remove O(n)【均摊】 O(h)[平均]

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 Size logn n Gap
n = 16 4 16 4倍
n=1024 10 1024 100倍
n=100w 20 100w 5w倍
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章