[航海992期]5日目TIL


💪 Today I Learned
  • アルゴリズム第1、2週課程
  • Algorithm
    アルゴリズムの改良
    機能を実装したからといって終了するのではなく、より良いアルゴリズムで改善できないかどうかを考慮する必要があります.
    たとえば、特定の数値より小さいすべての小数点をリストする場合、アルゴリズムは、少数の必要な十分な条件で改善できます.
    [小数をリスト]
    1.少数の人は自分と1以外何も分かち合えない.
    2.与えられた自然数Nが素数である必要十分な条件は、「NがNより大きくない平方根の素数に分けられない」ことである.
    配列vsリンクリスト
    アレイ
  • アレイは、各要素に直ちにアクセスすることができる->O(1);
  • 配列中に要素を挿入/削除するには、すべて移動する必要があります.最悪の場合,配列の長さはNを移動しなければならないので,O(N)の時間的複雑さを持つ.
  • 要素を追加するには、非常に非効率な資料構造である新しい空間を割り当てる必要があります.
  • リンクリスト(linklist)
  • リストサイズの不確定なデータの空間->接続、
  • を自由に拡張できる
  • リスト特定の要素にアクセスするには、ポインタに沿ってナビゲートする必要があります.最悪の場合,すべてのノードをブラウズする必要があるため,O(N)の時間的複雑さがある.
  • リストは、前後のポインタを変更するだけで、要素を挿入/削除できます.要素挿入/削除はO(1)の時間的複雑さ内で行うことができる.
  • さいきかんすう
  • 再帰関数を使用するには、常に脱出条件が必要です.
  • 再帰関数は、呼び出しによってコードを簡潔にすることができる.
  • 再帰関数で解くためには,問題は縮小の特徴を示さなければならない->ある構造が重複した状態を示している場合は,再帰関数で問題の範囲を縮小して解くのではないか.
  • Python
    for-else文
    今日アルゴリズムを勉強しているとPythonにfor else文があることに気づきました.
    else文にfor文にbreakがないときの動作を書けばいいです.
            for i in prime_list:
                if num % i == 0 and i * i <= num:
                    break
            else:
                prime_list.append(num)
    📢 一言
    今日は『TILの大切さと作り方』の特講を聞いて、簡単でもTILを作り続けたいと思います.新しいものを知っていても、記録はしないので忘れやすいです.これからはちゃんと記録しなきゃ!