No.2ベストアンサー
- 回答日時:
たとえば
「7135264」と並んだ数字があると
適当にピボットをとります。
ここでは5をピボットにすると
「713[5]264」に対して
左が小さく右が大きくなるように
7を5の右、2と4を左に移動
で、左が「1324」右が「76」となって
左は3をピボットとしたら2が左に移動、
右はどちらにしても7と6が入れ替え
これで「1234567」のソート(整列)が完成。
というアルゴリズムです。
基本的な説明はymmasayanさんので完璧です。
No.3
- 回答日時:
クイックソートは、最初におおざっぱに分けて、だんだん細かい部分を作って分けていきます。
よく切られたトランプ52枚を小さい順に並べ替える場合、方法1.はじめから完璧に並べ替えをする:1枚1枚を比べていきますから、1枚と並べ替えられた物を比べます。方法2.適当に選んだ1枚(基準の数)と大きいか小さいかだけ考えて山を2つ作ります。(1枚が3であれば、1-3が入った山と4-13)できた小さい山も同様に小さい山にして行きます。この山作りを1枚になるまでやります。方法2の小さい山を沢山並べ替えようという作戦がクイックソートです。方法1で100枚の物を並べ替える交換回数は平均1+2+...+99=100*99/2=4950回ですが1回だけ方法2を使うと最初に50個と50個の山に分けて50個を2回並べ替える場合(1+2+...49)*2+100=50*49+100=2600回でこちらが早いですね。1回だけではなく最後までやるとかなり早く並べ替える事ができるのが分かります。No.1
- 回答日時:
クイックソートは名前の通り「クイック(速い)なソート方法」です。
データ中のどれか一つを指名して基準値(軸またはピボット)とします。
全データを基準値より大きいグループと小さいグループに分けます。
それぞれのグループの中でまた基準値を決め同じ事を繰り返します。
全データが全てひとりグループになったときソート完了です。
古典的ソートがN**2型の計算量なのに対しクイックソートは
条件が悪くなければN*(log N)型の計算量になります。
マージソートやヒープソートも同じ計算量であり、最速のソート
の仲間です。
このアルゴリズムの実現には「再帰処理」を使うと楽です。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・14歳の自分に衝撃の事実を告げてください
- ・架空の映画のネタバレレビュー
- ・「お昼の放送」の思い出
- ・昨日見た夢を教えて下さい
- ・ちょっと先の未来クイズ第4問
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・メモのコツを教えてください!
- ・CDの保有枚数を教えてください
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・ハマっている「お菓子」を教えて!
- ・最近、いつ泣きましたか?
- ・夏が終わったと感じる瞬間って、どんな時?
- ・10秒目をつむったら…
- ・人生のプチ美学を教えてください!!
- ・あなたの習慣について教えてください!!
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
C# DataGridView のヘッダーセ...
-
VB.NETでファイル名順にファイ...
-
DataGridViewの複数列を連動し...
-
Excelですべての組合せ(重複組...
-
2次元配列を複数項目でソートし...
-
FFFTPでフォルダをABC順になら...
-
datagridviewの並べ替え
-
リスト構造のソートで悩んでま...
-
クイックソートしながら重複要...
-
C言語・要素除去
-
DataGridViewのソートを止めたい
-
excel VBA の条件をつけての列...
-
ListViewのソートについて
-
小さい順
-
C# DataTableの行をソートしてD...
-
(VBA) Dir 関数で取得するファ...
-
線形リストのソートについて
-
ファイル内の複数行にわたる文...
-
C言語 配列の長さの上限
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
System.IO.Directory.GetFiles...
-
VB.NETでファイル名順にファイ...
-
C# DataGridView のヘッダーセ...
-
ファイル名「1.jpg ~10.jpg~...
-
構造体配列のソート
-
C# DataTableの行をソートしてD...
-
C言語・要素除去
-
Excelですべての組合せ(重複組...
-
あるディレクトリ内のファイル...
-
DataGridViewの昇順降順。
-
2次元配列を複数項目でソートし...
-
DataGridViewの複数列を連動し...
-
文字列をソートする方法
-
VBA基本構文の作り方 2列の...
-
n番目に大きい数を求めるアル...
-
DataGridViewでのソート制御
-
DataGridViewソート時に先頭行...
-
excel VBA リストビューの行...
-
Excel2010 /VBA ユーザー設定リ...
-
数字文字列のソート方法
おすすめ情報