挿入ソートn^2が最悪の理由はなぜですか?バイナリ検索でnlognになることはできますか? log(n)への位置検索を最小限に抑え、memmoveのような低レベル関数を使用してスワップを最小限に抑えますか?挿入ソート最悪のケース
0
A
答えて
-1
バイナリ検索でnlognになることはできますか?
バイナリ検索は、配列の最初の部分がソートされていてもソートされた配列にのみ編集 可能であるとしてあなたは、バイナリ検索を使用する最初の配列をソートする必要があります
。今の場合、あなたはlognステップで挿入する位置を見つけます。次に、そこに値を挿入する必要があります。そのためには、すべての要素を右に動かす必要があります。最悪の場合、n個のステップが必要です。
+1
挿入ソートは、配列のソートされた部分。一度に1つの要素。変更された挿入ソートは、新しい要素の挿入ポイントを見つけるためにリニアスキャンではなくバイナリ検索を使用することができます。これが@Taztingoの提案です。 –
関連する問題
- 1. レッドブラックツリー挿入ケース
- 2. テーブル、ケースに挿入
- 3. 最善のケースと最悪のケースでは、並べ替えられていない配列に挿入するための時間の複雑さ
- 4. 挿入ソート
- 5. Java挿入ソート
- 6. ゴランの挿入ソート
- 7. 挿入ソートのClojure
- 8. リンクリストcstring挿入ソート
- 9. Cの挿入ソートのセグメンテーションフォルト
- 10. Lisp挿入ソートの問題
- 11. 非単調な最悪ケースの複雑さの例
- 12. のPython/Djangoの輸入悪夢(ユニークなケース)
- 13. Java - バイナリー挿入ソート、トラブルシューティング
- 14. 挿入ソート - アルゴリズムにALGOS
- 15. 2のべき乗を扱っていない場合の最悪の場合バイナリ検索の最悪ケース
- 16. C++での降順での挿入ソート
- 17. 2つのリストのPython挿入ソート
- 18. ソートされたダブルリンクリスト挿入の再帰
- 19. 挿入ソート - 空のリストを扱う
- 20. ソート済みリストの挿入ソートアルゴリズム
- 21. 単純な挿入ソートのセグメンテーションフォルト?
- 22. JavaScriptのアルゴリズム挿入ソート少しオフ
- 23. 挿入ソートの実装方法は?
- 24. はCで挿入ソートと文字列のソート - セグメンテーションフォールト
- 25. マージのキー比較の最悪ケース数はどれくらいですか?
- 26. KMP文字列検索アルゴリズムの最悪のケースは何ですか?
- 27. リンクリストノードを挿入してソートする
- 28. アルゴリズム紹介CLRS挿入ソート非増加
- 29. 挿入ソートがスワップしない
- 30. 挿入ソートを文字列ベクトルで
挿入の並べ替えがO(n^2)の理由は、最悪の場合、n個の項目をn回移動する必要があるためです。 'memmove'を使って項目を移動しても、時間の複雑さは変わりません。 – user3386109
これは、[\ [programmers se \]](http://programmers.stackexchange.com)によく似ているので、この質問を議論の対象外とすることにしました。 – sjsam
質問に記述した変更を行うとそれはもはや挿入の並べ替えではありません。 –