Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

T69 episteme

437 views

Published on

  • Be the first to comment

  • Be the first to like this

T69 episteme

  1. 1. 計算機科学基礎講座「計算量とメトリクス」わんくま同盟茶藝部顧問 episthmh episteme@wankuma.com わんくま同盟 東京勉強会 #69
  2. 2. プログラムは• 「使うひと目線」では – 速い – 小さい … に越したことはないよね。 わんくま同盟 東京勉強会 #69
  3. 3. アルゴリズムの性能を示す目安• 「速さ」の指標 – 時間計算量 : どんだけ時間を食うか• 「小ささ」の指標 – 空間計算量 : どんだけ記憶域を食うか わんくま同盟 東京勉強会 #69
  4. 4. O記法 (O-notation)• ある計算/処理に要する時間/空間がTに比例 するとき、その時間/空間計算量を O(T) と表記し、 「計算量はTのオーダー」という。 大文字のオミクロン ※ いつも一定の計算量であるなら O(1) わんくま同盟 東京勉強会 #69
  5. 5. データ構造と計算量• データ構造 – 可変長配列 : vector – リスト : list – 二分木 : set – ハッシュ表 : unordered_set それぞれの要素アクセス、挿入/削除、検索に要する時間計算量は… わんくま同盟 東京勉強会 #69
  6. 6. データ構造と時間計算量 N番目の参照 要素の追加/削除 検索可変長配列 Ο(1) Ο(N) Ο(N)リスト Ο(N) Ο(1) Ο(N)二分木 N/A Ο(logN) Ο(logN)ハッシュ表 N/A Ο(1) Ο(1) ※ ただし、要素ひとつを格納するのに必要な領域は一般に 可変長配列 < リスト < 二分木 < ハッシュ表 なので、「時間と空間のトレードオフ」 わんくま同盟 東京勉強会 #69
  7. 7. プログラムは• 「作るひと目線」では – 短い – 単純 … に越したことはないよね。 「長いプログラムは間違っている」 「難しいプログラムは間違っている」 わんくま同盟 東京勉強会 #69
  8. 8. 作るひと目線でのプログラムの複雑さ• メトリクス : 「複雑さ/ややこしさ」の指標 – 行数 LOC(Lines Of Code) – サイクロマティック複雑度 – ネストの深さ – 分岐数/パス数 – etc わんくま同盟 東京勉強会 #69
  9. 9. サイクロマティック複雑度 わんくま同盟 東京勉強会 #69
  10. 10. サイクロマティック複雑度 わんくま同盟 東京勉強会 #69
  11. 11. わんくま同盟 東京勉強会 #69
  12. 12. わんくま同盟 東京勉強会 #69
  13. 13. わんくま同盟 東京勉強会 #69
  14. 14. わんくま同盟 東京勉強会 #69
  15. 15. わんくま同盟 東京勉強会 #69
  16. 16. わんくま同盟 東京勉強会 #69
  17. 17. わんくま同盟 東京勉強会 #69
  18. 18. わんくま同盟 東京勉強会 #69
  19. 19. わんくま同盟 東京勉強会 #69
  20. 20. わんくま同盟 東京勉強会 #69
  21. 21. わんくま同盟 東京勉強会 #69
  22. 22. わんくま同盟 東京勉強会 #69
  23. 23. わんくま同盟 東京勉強会 #69
  24. 24. わんくま同盟 東京勉強会 #69
  25. 25. コンポーネント間の結合• 理解性• テスト容易性• 再利用性 を阻害する わんくま同盟 東京勉強会 #69
  26. 26. わんくま同盟 東京勉強会 #69
  27. 27. わんくま同盟 東京勉強会 #69
  28. 28. 60% 10%わんくま同盟 東京勉強会 #69
  29. 29. Thank you ! わんくま同盟 東京勉強会 #69

×