すべての特定の望ましいプロパティを持つソートアルゴリズムはありませんか?


22

上のソートアルゴリズムのウェブサイトは、以下の請求が行われます。

理想的なソートアルゴリズムには、次のプロパティがあります。

  • 安定:等しいキーは並べ替えられません。
  • 所定の位置で動作し、追加スペースが必要です。O(1)
  • 最悪の場合のキーの比較。O(nlg(n))
  • 最悪のスワップ。O(n)
  • アダプティブ:データがほぼソートされている場合、または一意のキーがほとんどない場合、まで高速化されます。O(n)

これらのプロパティをすべて備えたアルゴリズムはないため、ソートアルゴリズムの選択はアプリケーションによって異なります。

私の質問は、それは本当ですか

これらのすべてのプロパティを持つ[ソート]アルゴリズムはありません

もしそうなら、なぜですか?これらすべてが同時に満たすことを不可能にするこれらの特性についてはどうですか?


4
おそらく、これらのプロパティをすべて備えた既知のソートアルゴリズムはないということです。
ユヴァルフィルマス

3
比較ベースの並べ替え会議3と4もありますか?
greybeard

4
@JohnFeminellaそれは少なくとも必要の比較を、どのようにそれは私たちにスワップの数については何も教えてくれありませんか?Ω(nlog(n))
トム・ファン・デル・ザンデン

2
@JohnFeminella Nitpick:「より良い」は空の文です。下限について説明する場合は、ΩまたはΘを使用する必要があります。O(_)ΩΘ
ラファエル

1
セカンダリキーとして元の要素の位置を追加することにより、あらゆるソートアルゴリズムを安定させることができます。ただし、O(n)の余分なメモリが必要になるため、適切な場所に配置されません。
ジョヴァンニボッタ

回答:


6

WikiSortGrailSortは、適切で安定した最悪の場合の主要な比較を行うかなり最近の2つのアルゴリズムです。残念ながら、それらがO n スワップに近づいているのか適応性があるのか​​を知るほど十分に理解していないので、あなたが持っている4番目と5番目の条件に違反しているかどうかはわかりません。O(n lg(n))O(n)

WikiSort GitHubページにリンクされているPok-Son KimとArne Kutznerによる論文「Ratio based stable in-place merging」を見ると、KimとKutznerは(WikiSortはMergesortのバリアントです)が、Onスワップを持つWikiSortに変換されるかどうかはわかりません。GrailSortは(WikiSort GitHubページで)より高速であると主張されているため、両方とも最悪のケースOn)を持っている可能性が高いと想像できます。O(m(nm+1))O(n)O(n)スワップを持ち、適応ます。

WikiSortやGrailSortを理解できた人がいたら、それについての私の未解決の質問にも答えいただければ幸いです



3

これらのすべての特性を満たすアルゴリズムはありません。これらのプロパティは、より多くのソートアルゴリズムを開発するにつれて求められました。たとえば、バブルソート(おそらく最も原始的なソートアルゴリズム)は、最初の実装ではおそらく不安定でしたが、コンピューター科学者が後の実装でより効率的にしようとするため、安定するように設計されました。そのため、コンピューター科学者はおそらく最高のアルゴリズムから最高の特性を選択し、その結果、これらすべての望ましい特性のリストを作成したことになります。現実には、すべての世界で最高のものを何かに持つことは困難です。不可能ではありませんが、現在のアーキテクチャでは不可能かもしれません。

PS 漸近的上限としてBig-O()を使用し、漸近的下限としてBig-Omega(Ω)を使用します。間のシータ(Θ)。OΩΘ


1
ようこそ!これは素晴らしいことですが、安定性が効率にどのように関係するのかわかりません。同一キーを持つリストのセクションは、アルゴリズムによって「ランダムに」並べ替えられるべきではありません。
デビッドリチャービー

はい、しかしそれは証明可能か、不可能ですか?
ジェームズファルコン

1

(これは古い質問ですが、私はそれにつまずいたので、他の人もそうかもしれません。)

(1)-(4)および(5)の後半を満たすアルゴリズムが実際に存在するため、上記の要件に非常に近くなります。[1]で説明されており、過去数十年間に発明されたいくつかのトリックを組み合わせています。

[1]:Franceschiniの、G.理論Comput SYST(2007)40:327 https://doi.org/10.1007/s00224-006-1311-1

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.