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

T69 episteme

352 views
326 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
352
On SlideShare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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

×