アルゴリズムとプログラミングの基本概念
キュー (Queue)
- キューは列に並んで順番を待つイメージ。最初に並んだものが最初に出ていくので「先入れ先出し (FIFO)」。
- 例: 銀行の列。先に並んだ人から順に呼ばれる。
- FIFO(First-In First-Out)とは、現物の在庫管理の手法における「先入先出法」のこと。
スタック (Stack)
- スタックは積み重ねるイメージです。キューの正反対。最後に積んだものが最初に出ていくので「後入れ先出し (LIFO)」。
- 例: エレベーター。最後に乗った人が最初に降りる?本の山を積む。最後に積んだ本を最初に取り出す。
- LIFO(Last In First Out)とは、複数の対象を取り扱う順序を表した用語で、最初に入れたものを最後に取り出す「後入先出法」のこと。
検索 (Search)
- 検索は特定の情報を探すことです。データの中から必要な情報を見つける。
- 例: 教室の中で特定の本を探す。たくさんの本の中から目当ての本を見つけること。
合併 (Merge)
- マージは2つ以上のものを一つにまとめること。特にデータを整理して一つのリストにすることが多い。
- 例: 2つのクラスの生徒リストを一つのリストにまとめること。
整列 (Sort)
- ソートはデータを順番に並べること。昇順 (小さい順) または降順 (大きい順) に整理。
- 例: クラスの生徒を名前の順に並べ替えること。
具体的な例
キューの例:
queue = [ ]
queue.append(‘A’) # Aさんが列に並ぶ
queue.append(‘B’) # Bさんが列に並ぶ
first = queue.pop(0) # 最初に並んだAさんが出ていく
スタックの例:
stack = [ ]
stack.append(‘A’) # Aさんがエレベーターに乗る
stack.append(‘B’) # Bさんが乗る
last = stack.pop() # 最後に乗ったBさんが出ていく
検索の例:
numbers = [1, 3, 5, 7, 9]
target = 5
if target in numbers:
print(f”{target}はリストにあります”)
マージの例:
list1 = [1, 3, 5]
list2 = [2, 4, 6]
merged_list = sorted(list1 + list2) # 2つのリストをまとめて並べ替える
ソートの例:
unsorted_list = [3, 1, 4, 2]
sorted_list = sorted(unsorted_list) # リストを昇順に並べ替える
まとめ
- キュー: 順番に並んで、最初に入ったものが最初に出る。
- スタック: 積み重ねて、最後に入ったものが最初に出る。
- 検索: 特定の情報を探す。
- マージ: データを一つにまとめる。
- ソート: データを順番に並べる。


