配列の範囲内で合計を計算する必要があったため、Segment Tree と Fenwick Tree に出会い、これらのツリーの両方が同じ漸近的な実行時間でクエリと更新を行っていることに気付きました。もう少し調査を行ったところ、これら 2 つのデータ構造はすべてを同じ速度で実行しているようです。どちらもメモリ使用量は線形です (セグメント ツリーは 2 倍使用します)。
実行時間/メモリと実装の一定の要因は別として、どちらかを選択する理由はありますか?
私は客観的な答えを探しています。たとえば、一方が他方よりも高速な操作や、一方が他方にない制限があるなどです。
これについて他に 2 つの StackOverflow の質問を見ましたが、回答では、一方が他方よりも優れている場合を説明するのではなく、両方のデータ構造について説明しただけです。