Top Banner
CS32 Discussion Week 7 Muhao Chen [email protected] http://yellowstone.cs.ucla.edu/~muhao / 1
43

CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen [email protected] muhao/ 1

Jul 29, 2018

Download

Documents

dinhbao
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

CS32 DiscussionWeek 7

Muhao Chen

[email protected]

http://yellowstone.cs.ucla.edu/~muhao/

1

Page 2: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

Outline

•Big-O Notation

•Sorting

•Tree

2

Page 3: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

Complexity

•Quantify the efficiency of a program.

•The magnitude of time and space cost for an algorithm given certain size of input.•Time complexity: quantifies the run time.•Space complexity: quantifies the usage of the

memory (or sometimes hard disk drives, cloud disk drives, etc.).

3

Page 4: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

4

Page 5: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

5

Page 6: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

Formal Definition of Big-O

• Let T(n) be the function that measures the runtime of the program given n size of input

• Let g(n) be another function defined on the real number field.• T(n) = O(g(n)) iff ∃M > 0 and ∃N > 0 s.t. ∀n>N : T(n) ≦

M*g(n)

6

When the input size n grows above certain scale N, the runtime T(n) is of the same or less

magnitude of the function g inside O( )Upper bound

Page 7: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

7

Page 8: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

8

Page 9: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

9

Page 10: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

10

Page 11: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

11

Page 12: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

12

Page 13: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

13

Page 14: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

14

Page 15: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

15

Page 16: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

16

Page 17: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

17

Page 18: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

18

Page 19: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

19

Page 20: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

20

Page 21: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

21

Page 22: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

22

Page 23: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

23

Page 24: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

24

Page 25: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

25

Page 26: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

26

Page 27: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

27

Page 28: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

28

Page 29: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

29

Page 30: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

30

Page 31: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

31

Page 32: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

Permutation

32

void permutation(vector<int>& nums, int start) {if (start == nums.size() - 1) {

for(int i=0; i<nums.size(); ++i)cout << nums[i] << ' ,'; cout << endl;

}permutation(nums, start + 1);for (int i=start+1; i<nums.size(); ++i) {

swap(nums[start], nums[i]);permutation(nums, start + 1);swap(nums[start], nums[i]);

}}

permutation(nums, 0); //call this function

O(n!)

Page 33: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

33

Page 34: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

Tree

34

Page 35: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

35

Page 36: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

36

Page 37: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

37

n - 1

Page 38: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

38

Page 39: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

39

20+21+…+2h=2h+1-1

Page 40: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

40

Page 41: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

41

Page 42: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

42

0

Page 43: CS32 Discussion Week 7 - yellowstone.cs.ucla.eduyellowstone.cs.ucla.edu/~muhao/cs32s18/week7.pdf · CS32 Discussion Week 7 Muhao Chen muhaochen@ucla.edu muhao/ 1

Bugs in your software are actually special features :)

43