【Android】几种数据结构的查找、插入、删除的时间复杂度对比

几种数据结构的查找、插入、删除的时间复杂度对比

数据结构 查找 插入 删除
数组 O(n) O(n) O(n)
有序数组 O(logn)(二分查找) O(n) O(n)
单链表 O(n) O(n) O(n)
有序单链表 O(n) O(n) O(n)
双链表 O(n) O(n) O(n)
有序双链表 O(n) O(n) O(n)
二叉树 O(n) O(n) O(n)
二叉搜索树 O(logn) O(logn) O(logn)
红黑树 O(logn) O(logn) O(logn)
平衡二叉树 O(logn) O(logn) O(logn)
哈希表 O(1) O(1) O(1)
  • 哈希表

红黑是用非严格的平衡来换取增删节点时候旋转次数的降低,任何不平衡都会在三次旋转之内解决,而AVL是严格平衡树,因此在增加或者删除节点的时候,根据不同情况,旋转的次数比红黑树要多。因此实际应用中,若搜索的次数远远大于插入和删除,那么选择AVL,如果搜索,插入删除次数几乎差不多,应该选择RB。

猜你喜欢

转载自blog.csdn.net/weixin_42473228/article/details/134431165