Your SlideShare is downloading. ×
T69 episteme
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

T69 episteme

246
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
246
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×