0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

基本情報技術者に向けて Part.7

Posted at

データを整列させるアルゴリズム

基本交換法(バブルソート)

隣接するデータの代償を比較し、入れ替えることで全体を整列させる。
4213 先頭二つを比較

2413 先頭二つを入れ替え

2143 入れ替えたうちの右側と隣接する数字を入れ替え

2134 上記と同じ処理を行う(右端はこれ以上数字がないのでこれで確定)

2134 先頭二つを比較

1234 先頭二つを入れ替え

1234 入れ替えた数字を比較した際に右側が大きいのでこれで確定

基本選択法(選択ソート)

データの中から最小値もしくは最大値のデータを取り出し、先頭のデータと交換する。これを繰り返し全体を整列させる。
4213 対象の中から最小値を見つける

1243 最小値と先頭のデータを入れ替え

1243 先頭が確定

1243 残りのデータから最小値を探す

1243 今回は2が最小値だが入れ替えはなし(2が確定)

1243 残りのデータから最小値を探す

1234 最小値と先頭データを入れ替え

基本挿入法(挿入ソート)

整列済みのデータとみ整列のデータを分ける
未整列の側からデータを一つずつ整列済みの列の適切な位置に挿入し、全体を整列させる
4_213 先頭を整列済みとする

4_213 未整列の数字(今回は2)をどこに挿入するか考える

24_13 未整列の数字(今回は2)を挿入する

24_13 次の未整列の数字(今回は1)をどこに挿入するか考える

124_3 未整列の数字(今回は1)を挿入する

124_3 未整列の数字(今回は3)をどこに挿入するか考える

1234_ 未整列の数字(今回は3)を挿入する

## シェルソート
一定間隔沖に取り出した要素で部分列を作り、それぞれ整列して元に戻す
今度はさらに間隔を詰めて要素を取り出し、再度整列。
これを間隔が1になるまで繰り返す。
14725836 要素を四つおきに取り出す

15_48_73_26 取り出した結果

15_48_37_26 整列

15483726 一つに戻す

1432_5876 二つおきに取り出す

1342_5786 整列

クイックソート

中間的な基準値を決め、それより小さいグループ、それより大きいグループに分ける
その後、それぞれのグループでまた基準値を決めて振り分ける、これを繰り返す
14725836 基準値を決める

123_4_7586   基準値をベースに小さいグループと大きいグループに分け、基準値ごとに分ける

1_2_3_4_5_6_78 基準値をベースに小さいグループと大きいグループに分ける

1_2_3_4_5_6_7_8 上記の手順を繰り返す

ヒープソート

未整列の部分を順序木という木構造に構成し、最大値か最小値を取り出し手整列済みの側へと移す
これを繰り返す整列

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?