N個の要素を含むソートされた配列があり、N個の挿入操作を実行したい場合は、最善の方法の最悪の場合の時間の複雑さはどれくらいですか?ソートされた配列のN個の挿入操作の時間の複雑さ
ソートされた配列の最後にN個の要素を直接挿入できるので、O(N log(2N))でなければならないと思います。すべての挿入の後、我々は2N要素を持ち、2N配列全体に対してO(2N log(2N))〜O(N log(2N))を取る安定したソートアルゴリズムを実行することができる。
しかし、どこでもO(N^2)という名前が付いていますソートされた配列の間に各挿入のためのスペースを作ることによって、各挿入の後にソートされた配列!
私のアプローチは間違っていますか?挿入するたびに並べ替えられた配列をソートしておく必要がありますか? 「はい」の場合は、「この一連の操作の後にデータ構造を維持するのではなく、各操作後にデータ構造を維持する」ルールがすべてのデータ構造に対して有効ですか?
O(nlg(2n)) = O(nlgn + nlg(2)) = O(nlgn + n) = O(nlgn)
のでところで、それは次のようになります。要件は何を言いますか?また、すべての順序付けされたデータ構造が同じルールを持っているわけではありません。たとえば、バランスのとれたバイナリ検索ツリーを使用すると、O(log n)に挿入することができます。 –