アルゴリズムとデータ構造

スポンサーリンク
Python

プログラムの性能向上のために有効だったこととか観点とか

PythonやSQLの処理速度を改善するための実践的な考え方をまとめました。ボトルネックの特定方法から、CPUバウンド・I/Oバウンド別の改善策、N+1問題、async、ストリーミング処理、インデックス、パーティショニングまでコード例付きで解説します。
アルゴリズムとデータ構造

並列処理・並行処理を設計するときに最初に整理すべきこと

プログラムのパフォーマンス向上のため、並列処理・並行処理化する際に必要な観点や分割方針について整理ボトルネックの種類 ボトルネックが CPU バウンド or I/O バウンドのいずれかに該当した場合、並列処理にすることが有効になる。I/Oバ...
アルゴリズムとデータ構造

マルチスレッドとマルチタスクの違い

CPUやOSに関連した用語とそのイメージの違いを整理。マルチスレッドとマルチプロセスは似た用語であるため、イメージとして区別しておく必要がある。
アルゴリズムとデータ構造

動的計画法の問題のまとめ[pythonのコード付き]

動的計画法の備忘録として、問題とその回答コードについてまとめておきます。
アルゴリズムとデータ構造

約数列挙の高速アルゴリズム[python]

pythonで約数列挙のアルゴリズムについて、考え方と実装コードをまとめました。
アルゴリズムとデータ構造

二次元グリッドを使った問題とその解法[python]

競技プログラミングを勉強している中で、二次元のグリッドを使った問題と度々出会います。解いた問題の備忘録も兼ねて、問題とその解法についてまとめておきます。
アルゴリズムとデータ構造

グリッド上の道順総数をpythonで解く[メモ化再帰, 重複順列, 逆元]

高校数学の場合の数でよく見る、二次元のグリッドの道順総数を解く問題を扱います。この問題を解くための3つのアルゴリズムを紹介します。3つのアルゴリズムとして、動的計画法・メモ化再帰・重複順列を取り上げます。重複順列では数字が大きくなっても対応できるよう、逆元というテクニックについても紹介しています。
アルゴリズムとデータ構造

[Python] 二分探索の応用問題: 最大値の探索

二分探索の応用問題の一つとして、条件を満たす値のうち最大のものを探索する問題があります。これに関連するいくつかの問題を取り上げ、判定と範囲の絞り込みの考え方を紹介します。
アルゴリズムとデータ構造

[pythonコードあり]高速なべき乗計算(繰り返し二乗法)

べき乗の高速な計算アルゴリズムである、繰り返し二乗法に関して解説します。本手法の理解には2進数、シフト演算および論理積の理解が重要なため、これらのことにも解説しています。また、実際にコードを動かした際の挙動についても詳しく見ています。
アルゴリズムとデータ構造

辞書順で何番目問題をpythonで解く方法

順列の問題で、辞書順でK番目の列は何か、もしくはある数字列は何番目か問われることがあります。この問題をアルゴリズムを用いて解く方法についてまとめ、pythonのコードを紹介します。
スポンサーリンク