今日学んだこと:アルゴリズムに関して
2025年10月13日
概要
今日はアルゴリズムについて学んだ。
学んだこと
Javaではpublic static void main(String[] args)メソッドが実行のエントリーポイント。 ・startやrunはスレッドクラスなどで使用される。
選択ソートは、未整列部分から最小の要素を探して、先頭の要素と交換する操作を繰り返す。 ・安定ではないが、実装が簡単で理解しやすいアルゴリズム。
ハッシュ法では、異なるキーが同じハッシュ値を持つ場合があり、これを衝突(コリジョン)と呼ぶ。 ・この解決のために、オープンアドレス法やチェイン法がある。
ヒープは優先度付きキューなどで用いられる木構造。 ・最大ヒープ:親 ≥ 子、最小ヒープ:親 ≤ 子という関係を持つ。 ・配列で実装されることが一般的で、偶数とは無関係。
連結リストは各要素が次の要素へのポインタを持つため、要素の挿入や削除が簡単。 ・一方、任意の位置に直接アクセスするのは苦手。 ・配列はメモリが連続しているが、連結リストは非連続でも良い。
再帰呼び出しは、関数が自分自身を呼び出して処理を行うアルゴリズムです。 ・代表例に「フィボナッチ数列」や「階乗の計算」があります。 ・イテレーション(A)は繰り返し処理の一般的な名称で、ループ処理(B)も同義。 ・逐次実行(D)は処理を一つずつ順に実行することを指します。
論理AND(&&)は、両方の条件が真(true)のときのみ結果が真になる
完全二分木(全てのレベルにノードが存在)では、ノード数は 2^h - 1(hは高さ)になる。 ・高さ h のとき、1 + 2 + 4 + … + 2^{h-1} = 2^h - 1。