2
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?

More than 1 year has passed since last update.

【学習用】基本情報技術者試験「整列アルゴリズム」

Last updated at Posted at 2023-09-05

目次

  • 整列(ソート)について
  • バブルソート
  • 選択ソート
  • 挿入ソート
  • マージソート
  • クイックソート
  • まとめ

整列(ソート)について

ソート(sort)とは、配列の要素の順序をそろえること

昇順

配列の先頭から末尾に向かって、データの値が大きくなるようにそろえること
qiita-square.png

降順

配列の先頭から末尾に向かって、データの値が小さくなるようにそろえること
qiita-square.png

バブルソート

配列の末尾から先頭に向かって隣同士の要素を比較し、小さい方が前になるように交換する

【手順1】1番小さいカードを確定させる

qiita-square.png

【手順2】2番目に小さいカードを確定させる

qiita-square.png

【手順3】3番目小さいカードを確定させる

qiita-square.png

選択ソート

配列の先頭から末尾に向かって要素の値をチェックして最小値を選択し、それを先頭の要素と交換する

【手順1】1番小さいカードを確定させる

qiita-square.png

【手順2】2番目に小さいカードを確定させる

qiita-square.png

【手順3】3番目小さいカードを確定させる

qiita-square.png

挿入ソート

【手順1】2番目のカードを挿入する

qiita-square.png

【手順2】3番目のカードを挿入する

qiita-square.png

【手順3】4番目のカードを挿入する

qiita-square.png

マージソート

要素数が1個になるまで分割し、分割した配列から要素を小さい順に取り出して結合する

【手順1】配列を2分割する

qiita-square.png

【手順2】分割した配列をさらに2分割する

qiita-square.png

【手順3】要素数が1個になったら結合する

qiita-square.png

小さい方から順番に取り出して結合する

【手順4】ソート済みの2つの配列を結合する

qiita-square.png
qiita-square.png

クイックソート

配列の中から基準値を1つ選び、残りの要素を基準値との大小でグループ分けする

【手順1】カード全体から任意の1枚を取り出して基準のカードにする

qiita-square.png

【手順2】残りのカードを1枚ずつ取り出し、基準のカードより小さければ左側に、大きければ右側に積み上げる

qiita-square.png

【手順3】より小さいカードで、手順1・手順2と同じ処理を行う

qiita-square.png

【手順4】より大きいカードで、手順1・手順2と同じ処理を行う

qiita-square.png

まとめ

バブルソート

配列の末尾から先頭に向かって隣同士の要素を比較し、小さい方が前になるように交換する

選択ソート

配列の先頭から末尾に向かって要素の値をチェックして最小値を選択し、それを先頭の要素と交換する

挿入ソート

配列の先頭から末尾に向かって要素を1つずつ取り出し、それより前の部分の適切な位置に挿入する

マージソート

要素数が1個になるまで分割し、分割した配列から要素を小さい順に取り出して結合する

クイックソート

配列の中から基準値を1つ選び、残りの要素を基準値との大小でグループ分けする

2
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
2
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?