No.3ベストアンサー
- 回答日時:
「値が等差数列で、並べたい順番と真逆に並んでいる時」が最悪と言われています。
例えば
8、7、6、5、4、3、2、1
を
1、2、3、4、5、6、7、8
に並べ替える場合など。
但し、ライブラリのqsortは「要素数がある程度少なくなった場合、アルゴリズムをクイックソート以外の物に切り換える場合がある」ので、クイックソートの計算量を検証する場合は「ソートルーチンを自作」しないと、正確な数値は計れません。
No.5
- 回答日時:
当然ですが, ひとえにクイックソートといっても「実際にどのようにピボットを決めているのか」がわからないと「どのような並びで最悪になるのか」はわかりません.
でも, いくらなんでも「列の最初 (または最後) をピボットにするクイックソート」は「しょぼい」と言われてもしかたがないと思う.
もちろん deterministic なクイックソートではどんな (O(1) の) ピボットの決め方をしてもそれに対応して「(O(n^2) かかる) 最悪の場合」は存在します. ですが, 列の端の要素をピボットにすると「昇順または降順にソートされた列」が最悪になるので普通はそんな風にしないと思います. 例えば「列の中央にあるデータ」とか「最初のデータ, 最後のデータと中央のデータの中央値」ってやればこれほど簡単ではないので, そのようなピボットの決め方の方が普通じゃないでしょうか.
No.4
- 回答日時:
処理系を特定しなければどうしようもありません。
すでに回答が出ているように、qsortはクイックソートで実装されているとは限りません。スタックが小さい環境ではヒープソート等で実装するのがよいでしょうし、そうでない場合でも、イントロソートの方が普通は優れています。
どんなアルゴリズムでどのように実装されているかで、かなり変わるはずです。
No.1
- 回答日時:
クイックソートにも色々なアルゴリズムが有りますが
一般的には降順に並んでいるデータを昇順に並べ替えるのが一番時間がかかるとされています。
理由は最初に出てきたデータをピボット(グループ分割のための基準データ)にするためです。
降順だと最後まで「1:残り」にしか分割されません。
平均的には2分割の繰り返しだと「クイック」になるのですが。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語プログラム変更 2 2022/12/21 15:03
- Excel(エクセル) Excel 郵便番号順に並び変えたい 同じ番号が複数あるとき 4 2022/04/28 18:35
- Excel(エクセル) オフィスをLibreOfficeからmicrosoft 2013に変えました。 1 2022/05/09 00:28
- その他(Microsoft Office) 逆順 3 2023/08/24 09:30
- Excel(エクセル) エクセルの並び替えについて 5 2022/07/11 00:49
- その他(Microsoft Office) 1の行を固定した上でVBAを用いて日付順に自動並べ替え 2 2022/06/06 15:09
- Excel(エクセル) Googleスプレッドシートの割合の関数と円グラフの並べ替えについて 1 2022/07/22 17:31
- Excel(エクセル) 【エクセル】並び替えからの並び替え方法 7 2022/07/22 09:46
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Java Java 南京錠 2 2023/02/04 11:46
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
2次元配列を複数項目でソートし...
-
多次元配列のソート方法
-
VB.NETでファイル名順にファイ...
-
リスト構造のソートで悩んでま...
-
ListViewのソートについて
-
あるディレクトリ内のファイル...
-
ファイル名「1.jpg ~10.jpg~...
-
javaのソートについて。
-
構造体配列のソート
-
線形リストのソートについて
-
VBA基本構文の作り方 2列の...
-
ブック.csvを開かずに他のブッ...
-
プログラミングについて 配列を...
-
jqgrid で 2から3 階層以上の j...
-
構造体配列の並べ替え
-
10個の整数を入力して小さい順...
-
n個の要素で出来る順列組み合...
-
アルゴリズム
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
ファイル名「1.jpg ~10.jpg~...
-
excel VBA の条件をつけての列...
-
リスト構造のソートで悩んでま...
-
C# DataGridView のヘッダーセ...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
C# DataTableの行をソートしてD...
-
C言語・要素除去
-
Excelですべての組合せ(重複組...
-
VBA基本構文の作り方 2列の...
-
列のどこをクリックしてもソー...
-
excel VBA リストビューの行...
-
あるディレクトリ内のファイル...
-
コレクションの数値をSortで並...
-
数字文字列のソート方法
-
VBScriptで重複レコードを削除...
-
2次元配列を複数項目でソートし...
-
10個の整数を入力して小さい順...
おすすめ情報