すらぼうの開発ノート

モバイルアプリエンジニアのメモ

【Python】選択ソート、挿入ソートの実装

選択ソート 配列から最小・最大値を探し,先頭要素と交換することを繰り返すことで整列を行う方法。 未整列部分の値を全て確認するので、等差数列的に計算数が加算され、時間計算量は0(n2)必要になる。 def selection_sort(arr): # 結果を出力するリスト res…

【Python】動的計画法

動的計画法 解決するべき問題を簡単に解決できる細かい問題に分割し、その細かい問題の解答を利用して大きな問題を解くこと。 動的計画法に向いている問題 再帰的な問題は向いている。 また最適部分構造(親問題が最適化を問うており、その子問題も同様に最適…

【Python】エラトステネスの篩を実装する

エラトステネスの篩 素数を見つけるためのアルゴリズム。 素数の倍数を除外していき、全ての数値を走査して最後まで除外されなかった数値群が素数となる。 ja.wikipedia.org 実装 # n以内の素数をリストで返す def sieve_of_eratosthenes(n): n += 1 if n ==…

【Python】式内展開、文字列補間(String Interpolation)の方法

fキーワードをクオートの前につける。 変数は{}で括る。 name = "taro" age = 20 print(f"My name is {name}. I am {age} years old.") # My name is taro. I am 20 years old. ランキング参加中プログラミング

【Python】2次元の正方行列をリスト内包表記で生成

[[0, 1, 2, 3, 4], [5, 6, 7, 8, 9], [10, 11, 12, 13, 14], [15, 16, 17, 18, 19], [20, 21, 22, 23, 24]] 上記の正方行列は次のように記述することで生成できる。 myMatrix = [[i + 5 * j for i in range(5)] for j in range(5)] print(myMatrix) # [[0, 1…

【Python】リスト(List)型データの生成・操作方法まとめ

現在Recursionに取り組んでいる。 そこで学んだことをメモする。 リスト(List) 生成 直接要素を指定 リスト内包表記 文字列をリストに変換 任意の値を任意個数要素にもつリストを生成 操作 読み取り 特定インデックスの値 for文を使用して繰り返し処理 後…

【Python】インスタンスが格納されているアドレス

現在Recursionに取り組んでいる。 そこで学んだことをメモする。 インスタンスを生成すると、その実態はヒープ領域に格納される。 以下のようにインスタンスが格納されているヒープ領域のアドレスを取得できる。 class Person: def __init__(self, name): se…