树状数组和线段树有啥区别?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了树状数组和线段树有啥区别?相关的知识,希望对你有一定的参考价值。
我想知道以上两者在效率以及适用问题上的异同
两者在复杂度上同级, 但是树状数组的常数明显优于线段树, 其编程复杂度也远小于线段树.树状数组的作用被线段树完全涵盖, 凡是可以使用树状数组解决的问题, 使用线段树一定可以解决, 但是线段树能够解决的问题树状数组未必能够解决.
树状数组的突出特点是其编程的极端简洁性, 使用lowbit技术可以在很短的几步操作中完成树状数组的核心操作,与之相关的便是其代码效率远高于线段树。
另外,当问题推广到高维情形时高维树状数组有高维线段树所无法企及的常数优势。 参考技术A 时间复杂度一样,但是树状数组常数小;
适用问题两者一样,但是线段树更广,因为线段树本身只是一个区间树,你可以在区间上添加很多的信息。。
以上是关于树状数组和线段树有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章