私は、セット内での挿入操作はlog(n)時間しかかかりません。そんなことがあるものか?set :: insertの複雑さ
挿入するには、最初に、新しい要素が座っていなければならないソートされた配列内の位置を見つけました。バイナリ検索を使用すると、log(n)が使用されます。その位置に挿入するには、それに続くすべての要素を1桁右にシフトする必要があります。別のn時間かかる。
私の疑問は、セットが配列として実装され、要素がソートされた順序で格納されていることです。私の理解が間違っていれば私を修正してください。
'std :: set'がソートされた配列として実装されていると仮定しています。どうして? –
cppreferenceから取られた:*セットは通常、赤黒の木として実装されています。* – chris
@ KonradRudolph:赤い黒のツリーを使ってセットが実装されていることを知りました。ありがとうchris – bibbsey