アルゴリズムは、コンピュータで効率よく処理を実行するための手順であり、その性能は「時間計算量(処理にかかる時間)」と「空間計算量(使用するメモリの量)」で評価されます。代表的なアルゴリズムには、データを順番に並べ替える「ソートアルゴリズム(バブルソート、クイックソートなど)」や、大量のデータから目的のものを探し出す「サーチアルゴリズム(線形探索、二分探索など)」があります。優れたアルゴリズムを選択することで、データ量が膨大になった場合でも、プログラムの実行時間を数時間から数ミリ秒に短縮することができます。プログラムを作成するエンジニアにとって、どのようなアルゴリズムを適用するかは、システムの品質やインフラコストに直結する極めて重要な決定要素です。アルゴリズムの性能を示す指標である「計算量」は、データ数 n に対するステップ数の増加割合を O(n)(オーダー記法)で表します。データを半分ずつに絞り込む二分探索は O(log n) で済み、データが数億件になっても一瞬で処理を終えられます。
試験では、特定のアルゴリズム(特に「ソート」や「サーチ」)の具体的な手順をトレースする問題や、アルゴリズムを視覚化した「フローチャート(流れ図)」の読み取り問題が頻出します。例えば「二分探索(バイナリサーチ)」は、データがあらかじめソートされている前提で、探索範囲を半分ずつに絞り込んでいくため高速に検索できる、といった特徴と手順を理解しておきましょう。変数の中身がどのように変化していくかを順を追ってシミュレーションする練習が有効です。「線形探索法」「二分探索法」の探索手順の違いや、各種ソートアルゴリズムの整列手順を頭の中でトレースする問題がよく出ます。
フローチャート、ソート、二分探索、計算量、線形探索