アルゴリズムとデータ構造 | 中小企業診断士1次試験 経営情報システム

U

「アルゴリズムって、プログラマーが知っていればいい話では?」と思っていました。でも診断士試験では「データをどう整理すると検索が速くなるか」という問いに答えられることが求められます。経営者がITベンダーと話すときに必要な共通言語として、アルゴリズムの基礎は知っておいて損はないと感じています。

この記事でわかること
  • 主要なデータ構造(配列・スタック・キュー・連結リスト・木構造)の特徴
  • ソートアルゴリズム(バブル・選択・挿入・クイック・マージ)の比較
  • 探索アルゴリズム(線形探索・二分探索・ハッシュ)の違い
  • 計算量(O記法)の読み方
  • 流れ図(フローチャート)の記号と読み方
目次

データ構造——データの入れ物の形

データ構造特徴主な用途
配列(Array)連続したメモリ領域。インデックスで直接アクセス可能(高速)。サイズ固定成績リスト・座席番号管理
スタック(Stack)後入れ先出し(LIFO:Last In First Out)。プッシュ(追加)とポップ(取出)「戻る」ボタンの履歴・関数呼び出しの管理
キュー(Queue)先入れ先出し(FIFO:First In First Out)。エンキュー(追加)とデキュー(取出)プリンターの印刷待ち・コールセンターの着信順
連結リスト各要素が次の要素へのポインタを持つ。挿入・削除が容易。ランダムアクセスは低速動的なデータ管理
木(Tree)構造階層的なデータ構造。二分探索木・ヒープ・B木など。探索・整列に効率的ファイルシステム・XMLのDOM・データベースのインデックス
ハッシュテーブルキーをハッシュ関数で変換してデータを格納。平均O(1)で検索可能辞書・連想配列・DBのインデックス
スタックとキューの覚え方
スタック=本の積み重ね:一番上に置いた本を一番最初に取る(LIFO)
キュー=レジの行列:先に並んだ人が先に会計できる(FIFO)

ソートアルゴリズム——データを並び替える方法

アルゴリズム仕組み計算量(平均)特徴
バブルソート隣接する要素を比較・交換を繰り返すO(n²)実装が簡単。大規模データには不向き
選択ソート未整列部分の最小値を選び先頭へ移動O(n²)交換回数が少ない。安定ではない
挿入ソート要素を適切な位置に挿入していくO(n²)ほぼ整列済みのデータに強い。安定ソート
クイックソート基準値(ピボット)で分割・再帰的に整列O(n log n)実用的に最速クラス。最悪O(n²)になることも
マージソート分割→整列→統合の再帰的処理O(n log n)安定ソート。大規模データに向く。外部ソートに使われる
ヒープソートヒープ(優先度キュー)を使って整列O(n log n)最悪でもO(n log n)。追加メモリ不要

探索アルゴリズム——データを見つける方法

アルゴリズム仕組み計算量前提条件
線形探索(逐次探索)先頭から順に比較していくO(n)なし(整列不要)
二分探索(バイナリサーチ)中央と比較し半分に絞り込む(再帰)O(log n)データが昇順または降順に整列済みであること
ハッシュ探索ハッシュ関数でキーから格納位置を計算O(1)(平均)ハッシュテーブルの事前構築
計算量(O記法)の読み方
  • O(1):データ量に関わらず一定時間。最速(例:ハッシュ探索)
  • O(log n):対数。データが2倍になっても処理は1ステップ増えるだけ(例:二分探索)
  • O(n):データ数に比例。データが2倍→処理も2倍(例:線形探索)
  • O(n log n):効率的なソートはここが限界(例:クイックソート・マージソート)
  • O(n²):データが2倍→処理は4倍。大規模データには不向き(例:バブルソート)

流れ図(フローチャート)の記号

記号図形意味
端子角丸長方形(楕円)開始・終了
処理長方形演算・代入などの処理
判断ひし形条件分岐(Yes/No)
入出力平行四辺形データの入力・出力
ループ端六角形繰り返し処理の開始・終了
サブルーチン二重枠長方形別に定義された処理の呼び出し

Uのメモ

学習メモ
  • スタック:LIFO(本の積み重ね)/ キュー:FIFO(レジの行列)
  • 木構造:階層データ・DB索引 / ハッシュ:O(1)で検索
  • ソート:バブル・選択・挿入=O(n²) / クイック・マージ・ヒープ=O(n log n)
  • 探索:線形=O(n) / 二分=O(log n)(整列必要)/ ハッシュ=O(1)
  • フローチャート:ひし形=判断(分岐)/ 長方形=処理 / 楕円=端子

関連記事

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

中小企業診断士試験勉強中のアラフィフシングルマザーです。
大学卒業後から現在まで、数々の失敗をしながらずっと自営業として試行錯誤を重ねてきました。
もっときちんと経営やビジネスの知識を身につけて、将来は他の事業者の方のお役にも立てたらいいな、と思うようになり、中小企業診断士の試験に挑戦中です。

目次