私はアルゴリズムの中級レベルです。最近、さまざまな並べ替えアルゴリズムを比較していたときに、このことが頭に浮かびました。
データがすでに存在するのではなく、入ってくるときに、さまざまな並べ替えアルゴリズムをどのように比較しますか?
私は自分でいくつかを比較しましたが、それが正しいアプローチであるかどうかはよくわかりません.
Insertion Sort : 名前自体が示すように、O(n^2) の複雑さの問題に対する優れた解決策を提示します。
Heap Sort : この手法は、プッシュされたデータ項目ごとにヒープを構築することです。これは、O(logn) の複雑さを持つシフトアップ操作に対応し、最初の要素を最後の要素と交換し、Heapify してヒープ プロパティを復元します。Heapify も O(logn) なので、全体的な複雑さは O(n logn logn) です。ただし、すべてのデータ項目が既に存在する場合、ヒープを構築した後、データ項目に対して Heapify 操作のみを実行しているため、O(n logn) しかありません。
選択並べ替え: 並べ替えの前にすべてのデータ項目が必要なので、選択並べ替えを使用して問題を解決する方法はないと思います。
ツリー ソート: この手法の主要なステップは、最悪の場合の時間計算量が O(n^2) であるツリーを構築することです。そして、順序通りのトラバーサルで十分です。
他のアルゴリズムについてはよくわかりません。
これらのソート手法を完全に把握したいので、この質問を投稿しています。私の質問または私の比較のいずれかに不一致が見つかった場合は、ご容赦ください。