アルゴリズムとプログラミング

アルゴリズムとプログラミング

【応用情報技術者試験】データ構造とアルゴリズムを学ぼう!     ~第4章~整列

ソートは、キーの大小などの規則に従ってデータを並べ替える処理です。手順・計算量・安定性・追加領域を分けて比較すると、途中経過を追いやすくなります。この章では代表的な7種類を整理します。比較する前に確認すること安定ソートは、同じキーを持つ要素...
アルゴリズムとプログラミング

【応用情報技術者試験】データ構造とアルゴリズムを学ぼう!     ~第3章~探索

探索方法を選ぶときは、整列の有無・中央へのアクセス・衝突への対応を確認しましょう。この章では線形探索、二分探索、ハッシュ法を、計算量の前提とともに比較します。時間計算量:秒数ではなく増え方を見る入力サイズnに対して、比較などの基本操作がどの...
アルゴリズムとプログラミング

応用情報技術者試験】データ構造とアルゴリズムを学ぼう!     ~第2章~木構造と種類

木構造はデータを階層で表す方法です。この章では、形の条件・値の配置ルール・訪問する順序を分けて整理します。二分木、二分探索木、ヒープは同じ意味ではありません。木構造の基本用語ここでは根を持つ木を扱います。根以外の各ノードには親が一つあり、親...
アルゴリズムとプログラミング

【応用情報技術者試験】データ構造とアルゴリズムを学ぼう!     ~第1章~リスト・スタック・キュー

この章では、順番を持つデータの管理と、取り出す順序の違いを整理します。スタックは後入れ先出し、通常のキューは先入れ先出しです。これらの操作ルールと、配列・連結リストという実装方法を分けて考えましょう。データ構造とアルゴリズムデータ構造はデー...
アルゴリズムとプログラミング

【応用情報技術者試験】モンテカルロ法

モンテカルロ法は、乱数による標本や試行を繰り返し、計算対象の量や結果の分布を推定する方法です。ランダムに試せば、どんなモデルでも必ず正しい答えが得られるわけではありません。基本の流れ求めたい量とモデルを決める。入力に使う分布や条件を定める。...
アルゴリズムとプログラミング

【応用情報技術者試験】線形探索と二分探索の特徴

線形探索は順に調べる方法、二分探索は整列したデータの探索範囲を半分ずつ絞る方法です。比較回数だけでなく、整列の有無やデータ構造の前提も確認しましょう。線形探索:先頭から順に確認配列[2, 5, 8, 12, 16, 23, 38]から23を...
アルゴリズムとプログラミング

【応用情報技術者試験】プログラム特性

試験で扱うプログラム特性は、配置・繰返し利用・並行した呼出し・自分自身の呼出しを分けて読むのがコツです。四つのどれか一つにだけ分類されるという意味ではなく、複数の性質を同時に持てます。四つの特性を比較用語日本語着眼点リロケータブル再配置可能...
アルゴリズムとプログラミング

【応用情報技術者試験】TypeScriptとJavaScriptの違い

TypeScriptは、JavaScriptのコードへ静的な型の確認を加える言語です。違いは「小規模用と大規模用」という区分より、開発時の型チェックと、実行時の動作を分けて理解すると明確です。基本の違い観点JavaScriptTypeScr...
アルゴリズムとプログラミング

【応用情報技術者試験】配列とリスト(ポインタ)

配列と連結リストは、順序を持つデータを扱う代表的な構造です。添字で直接読むか、リンクをたどるか。追加・削除する場所が分かっているか。この二つを分けて比べると、計算量を理解しやすくなります。配列とはここでは、同じ大きさの要素を連続した領域に並...
アルゴリズムとプログラミング

【応用情報技術者試験】整列法

整列法(ソート)は、キーの大小などに従ってデータを並べ替える方法です。試験では手順・計算量・安定性・追加メモリを分けて比べると整理できます。代表的な整列法の比較方法平均/最悪の時間安定性(標準的な実装)バブルO(n²)/O(n²)安定(同値...