2012-05-13 3 views
-1

クイックソートは安定したメソッドではないことが分かります。つまり、配列のメンバーが正しい位置に置かれないかもしれません。配列の例が必要です(クイックソートは何度も繰り返されます)。仕事(分割方法の例として3つの方法が必要)。私はインターネットでこのような配列の例を見つけることができず、私を助けることができましたか?quicksortが壊れる例

確かにこの問題(ヒープソート、マージソートなど)には他の種類のソート方法を使用できますが、実際の例では、どのような種類のデータがクイックソートのリスクを含んでいるかを知ることです最も有用な方法の1つで、よく使用されています。

+1

出力が不適切であるとは限りません。正しく実装されていると、出力は常にソートされます。ソートされていない出力を生成する入力はありません。 – Mat

答えて

2

クイックソートはどのような配列であってもクラッシュしません。

ソートアルゴリズムが「安定」または「安定していない」と呼ばれる場合、アルゴリズムの安全性またはクラッシュの有無を参照しません。これは、同じキーを持つ要素の相対的な順序を維持することに関連しています。簡単な例として

、あなたが持っている場合:

[9、5、7、5、1]

そして、 '安定した' ソートアルゴリズムは、ソートされた配列の最初の5であることを保証すべきですこの2番目の例の前に配置されています。この簡単な例では違いはありませんが、1つの列に基づいて表をソートする場合(他の列を同じ順序にしたい場合従来通り)。

詳細はこちらhttp://en.wikipedia.org/wiki/Stable_sort#Stability

+0

私は正確にこれを尋ねています。例えば配列に1 3 3 3 4 2 5 3 6 7 8が含まれていれば、結果はソートされますか?もしそうならば、どのような安定性を念頭に置いていますか? – programmer

+0

この問題の解決方法は3方向パーティショニングですか? – programmer

+0

結果は常にソートされます。安定性とは、配列がソートされた後、3sが同じ順序にとどまるかどうかということです。アルゴリズムによってはこれを保証できないものもあれば、そうでないものもあります。それは安定です。ウィキペディアのリンクを見てくださいと、それは意味をなさないでしょう – HXCaine

関連する問題