×
科目A|アルゴリズムとプログラミング

クイックソート | 応用情報技術者試験

クイックソートとは

クイックソート(Quick Sort)とは、実用上で極めて高速に動作する代表的なソートアルゴリズムです。「分割統治法」と呼ばれる考え方に基づいており、まずデータの中から基準値(ピボット)を1つ決めます。次に、基準値より「小さい値のグループ」と「大きい値のグループ」の2つにデータを分けます。分けたそれぞれのグループに対して、再び同じルールでピボットを決めて二分する操作を再帰的に繰り返します。

具体例

学校でクラス全員を背の順に並べる際、適当な人(ピボット)を1人選び、「その人より背が低い人は左側、高い人は右側」に移動させます。その後、分けられた左右のグループそれぞれで再度同じリーダー(ピボット)を選んで整列を行う方法です。
// クイックソートの分割イメージ
[5, 2, 8, 9, 1, 3]  (基準値を「5」とする)
  │   (5より小さいグループと大きいグループに分ける)
  ▼
[2, 1, 3]  < 5 <  [8, 9]
※それぞれのグループで再度ソートを繰り返す。

もう少し詳しく