Presentation is loading. Please wait.

Presentation is loading. Please wait.

The Power of Computing Algorithms

Similar presentations


Presentation on theme: "The Power of Computing Algorithms"— Presentation transcript:

1 The Power of Computing Algorithms
Daryle J. Serrant – Past Undergraduate Student Debasis Mitra – Florida Institute of Technology Computer Science

2 What is an Algorithm? Cooking <- Recipes
Building construction <- Blue print Software <- Algorithm

3 Example Problem 1 Best Return on a Stock
We have daily stock prices over a period: Gains as positive Loss as negative When should we have bought and when should we have sold

4 Maximum Customers visited in a Store
Problem Example 2 Maximum Customers visited in a Store # Customers visited & left every hour is tracked Incoming number as positive Leaving number as negative Between which hours maximum #customers were in the store

5 A Computing Problem: Maximum Subsequence
What is common between the two examples? Can you find the maximum sub-sequence of the following numbers: 3, 4, -8, 1, 9, -2, 3, -1 Answer: {1, 9, -2, 3} for the max sum 11. Question: How fast can we get the answer? Answer: Depends on the ALGORITHM!

6 The Workaholic Approach
Go over every possible subsequence: Day 1 – Day 2, Day 1 – Day 3, etc. Find the subsequence with the largest sum. Image Source:

7 Day 1 – Day 1 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7 Day 1 – Day 1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 3 Max Sum: 3 Addition Counter: 1 Maximum Subsequence: Day 1

8 Day 1 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Start End Sum: 0 + 3 Addition Counter: 2

9 Day 1 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Start End Sum: = 7 Max Sum: 3 Addition Counter: 3 Maximum Subsequence: Day 1 Max Sum is now 7 and Maximum Subsequence is now Day 1 - 2

10 Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1010 Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 4

11 Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1111 Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 5

12 Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1212 Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = -1 Max Sum: 7 Addition Counter: 6 Maximum Subsequence: Day 1 - 2 No change

13 Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1313 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 7

14 Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1414 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 8

15 Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1515 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 9

16 Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1616 Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 0 Max Sum: 7 Addition Counter: 10 Maximum Subsequence: Day 1 - 2 No changes

17 Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1717 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 11

18 Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1818 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 12

19 Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
1919 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 13

20 Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2020 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 14

21 Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2121 Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 9 Max Sum: 7 Addition Counter: 15 Maximum Subsequence: Day 1 - 2 Max Sum is now 9 and Maximum Subsequence is Day 1 – Day 5

22 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2222 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 16

23 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2323 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 17

24 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2424 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 18

25 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2525 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 19

26 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2626 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 20

27 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2727 Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 = 7 Max Sum: 9 Addition Counter: 21 Maximum Subsequence: Day 1 - 5 No change

28 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2828 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 22

29 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
2929 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 23

30 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3030 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 24

31 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3131 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 25

32 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3232 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 26

33 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3333 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 27

34 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3434 Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – = 10 Max Sum: 9 Addition Counter: 28 Maximum Subsequence: Day 1 - 5 Max Sum is now 10 and Maximum Subsequence is Day 1 - 7

35 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3535 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 29

36 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3636 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 30

37 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3737 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 31

38 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3838 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 32

39 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
3939 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 33

40 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4040 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 34

41 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4141 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 + 3 Addition Counter: 35

42 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4242 Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – – 1 = 9 Max Sum: 10 Addition Counter: 36 Maximum Subsequence: Day 1 - 7 No changes

43 Day 2 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4343 Day 2 – Day 2 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 4 Max Sum: 10 Addition Counter: 37 Maximum Subsequence: Day 1 - 7 No changes

44 Day 2 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4444 Day 2 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 38

45 Day 2 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4545 Day 2 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 = -4 Max Sum: 10 Addition Counter: 39 Maximum Subsequence: Day 1 - 7 No changes

46 Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4646 Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 40

47 Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4747 Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 41

48 Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4848 Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = -3 Max Sum: 10 Addition Counter: 42 Maximum Subsequence: Day 1 - 7 No changes

49 Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
4949 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 43

50 Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5050 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 44

51 Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5151 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 45

52 Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5252 Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 6 Max Sum: 10 Addition Counter: 46 Maximum Subsequence: Day 1 - 7 No changes

53 Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5353 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 47

54 Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5454 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 48

55 Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5555 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 49

56 Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5656 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 50

57 Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5757 Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 = 4 Max Sum: 10 Addition Counter: 51 Maximum Subsequence: Day 1 - 7 No changes

58 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5858 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 52

59 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
5959 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 53

60 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6060 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 54

61 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6161 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 55

62 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6262 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 56

63 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6363 Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – = 7 Max Sum: 10 Addition Counter: 57 Maximum Subsequence: Day 1 - 7 No changes

64 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6464 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 4 Addition Counter: 58

65 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6565 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 Addition Counter: 59

66 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6666 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 8 + 1 Addition Counter: 60

67 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6767 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – Addition Counter: 61

68 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6868 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 Addition Counter: 62

69 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
6969 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 2 + 3 Addition Counter: 63

70 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7070 Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – – 1 = 6 Max Sum: 10 Addition Counter: 64 Maximum Subsequence: Day 1 - 7 No changes

71 Day 3 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7171 Day 3 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 = -8 Max Sum: 10 Addition Counter: 65 Maximum Subsequence: Day 1 - 7 No changes

72 Day 3 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7272 Day 3 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 = -8 Addition Counter: 66

73 Day 3 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7373 Day 3 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – = -7 Max Sum: 10 Addition Counter: 67 Maximum Subsequence: Day 1 - 7 No changes

74 Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7474 Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 = -8 Addition Counter: 68

75 Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7575 Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 69

76 Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7676 Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – = 2 Max Sum: 10 Addition Counter: 70 Maximum Subsequence: Day 1 - 7 No changes

77 Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7777 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 Addition Counter: 71

78 Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7878 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 72

79 Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
7979 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – Addition Counter: 73

80 Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8080 Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 = 0 Max Sum: 10 Addition Counter: 74 Maximum Subsequence: Day 1 - 7 No changes

81 Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8181 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 Addition Counter: 75

82 Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8282 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 76

83 Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8383 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – Addition Counter: 77

84 Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8484 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 Addition Counter: 78

85 Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8585 Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – = 3 Max Sum: 10 Addition Counter: 79 Maximum Subsequence: Day 1 - 7 No changes

86 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8686 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 Addition Counter: 80

87 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8787 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 8 + 1 Addition Counter: 81

88 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8888 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – Addition Counter: 82

89 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
8989 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 Addition Counter: 83

90 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9090 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 2 + 3 Addition Counter: 84

91 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9191 Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – – 1 = 2 Max Sum: 10 Addition Counter: 85 Maximum Subsequence: Day 1 - 7 No changes

92 Day 4 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9292 Day 4 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 1 Max Sum: 10 Addition Counter: 86 Maximum Subsequence: Day 1 - 7 No changes

93 Day 4 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9393 Day 4 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 87

94 Day 4 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9494 Day 4 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 10 Max Sum: 10 Addition Counter: 88 Maximum Subsequence: Day 1 - 7 No changes

95 Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9595 Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 89

96 Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9696 Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 90

97 Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9797 Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 = 8 Max Sum: 10 Addition Counter: 91 Maximum Subsequence: Day 1 - 7 No changes

98 Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9898 Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 92

99 Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
9999 Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 93

100 Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 94

101 Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 11 Max Sum: 10 Addition Counter: 95 Maximum Subsequence: Day 1 - 7 Max Sum is 11 and Maximum Subsequence is now Day 4 – Day 7

102 Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 1 Addition Counter: 96

103 Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: Addition Counter: 97

104 Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 98

105 Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 + 3 Addition Counter: 99

106 Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 1 = 10 Max Sum: 11 Addition Counter: 100 Maximum Subsequence: Day 4 - 7 No changes

107 Day 5 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 9 Max Sum: 11 Addition Counter: 101 Maximum Subsequence: Day 4 - 7 No changes

108 Day 5 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 9 Addition Counter: 102

109 Day 5 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 = 7 Max Sum: 11 Addition Counter: 103 Maximum Subsequence: Day 4 - 7 No changes

110 Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 9 Addition Counter: 104

111 Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 105

112 Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – = 10 Max Sum: 11 Addition Counter: 106 Maximum Subsequence: Day 4 - 7 No changes

113 Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 9 Addition Counter: 107

114 Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 Addition Counter: 108

115 Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 2 + 3 Addition Counter: 109

116 Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – – 1 = 9 Max Sum: 11 Addition Counter: 110 Maximum Subsequence: Day 4 - 7 No changes

117 Day 6 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 = -2 Max Sum: 11 Addition Counter: 111 Maximum Subsequence: Day 1 - 7 No changes

118 Day 6 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 Addition Counter: 112

119 Day 6 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – = 1 Max Sum: 11 Addition Counter: 113 Maximum Subsequence: Day 4 - 7 No changes

120 Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 Addition Counter: 114

121 Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 2 + 3 Addition Counter: 115

122 Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – – 1 = 0 Max Sum: 11 Addition Counter: 116 Maximum Subsequence: Day 4 - 7 No changes

123 Day 7 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: = 3 Max Sum: 11 Addition Counter: 117 Maximum Subsequence: Day 4 - 7 No changes

124 Day 7 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 + 3 Addition Counter: 118

125 Day 7 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: – 1 = 2 Max Sum: 11 Addition Counter: 119 Maximum Subsequence: Day 4 - 7 No changes

126 Day 8 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 8 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Start End Sum: 0 – 1 = -1 Max Sum: 11 Addition Counter: 120 Maximum Subsequence: Day 4 - 7 No changes

127 Analysis Each sub-sequence between green & red ptrs is aggregated, at most 8 addition counting operations per sub-sequence, … by using the black pointer There is 32 subsequences in total That is a lot of adding to do, don’t you think? Imagine having to find the maximum sub-sequence over100 days. Or, maybe 20,000 days. Given n days of stock data, the number of addition operations that you will perform using the workaholic approach will be in the ballpark of around n3 Computers have to do exactly the same computation!!

128 Improve! Do we really need to run the black/middle pointer over and over again on same numbers? As the red/right pointer moves cann’t we just add that number to the previous sum? Computers have to do exactly the same computation!!

129 The Conservative Approach
The Workaholic approach requires a lot of addition operations So much, that it’s impractical to use for large data sets We can save a lot of time by using accumulated sums from the previous sub-sequences. Let us call this the Conservative approach. Photo source:

130 Day 1 – Day 1 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Task: black triangle on red?? Day 1 – Day 1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 3 Max Sum: 3 Maximum Subsequence: Day 1 – Day 1 Addition Counter: 1

131 Day 1 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 2 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 7 Max Sum: 3 Maximum Subsequence: Day 1 – Day 1 Addition Counter: 2 Max Sum is now 7 and Maximum Subsequence is Day 1 – Day 2

132 Day 1 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 7 – 8 = -1 Max Sum: 7 Maximum Subsequence: Day 1 – Day 2 Addition Counter: 3 No changes

133 Day 1 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 0 Max Sum: 7 Maximum Subsequence: Day 1 – Day 2 Addition Counter: 4 No changes

134 Day 1 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 9 Max Sum: 7 Maximum Subsequence: Day 1 – Day 2 Addition Counter: 5 Max Sum is now 9 and Maximum Subsequence is Day 1 – Day 5

135 Day 1 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 9 – 2 = 7 Max Sum: 9 Maximum Subsequence: Day 1 – Day 5 Addition Counter: 6 No changes

136 Day 1 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 10 Max Sum: 9 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 7 Max Sum is now 10 and Maximum Subsequence is Day 1 – Day 7

137 Day 1 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 1 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 10 – 1 = 9 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 8 No changes

138 Day 2 – Day 2 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 2 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 4 Max Sum: 11 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 9 No changes

139 Day 2 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 4 – 8 = -4 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 10 No changes

140 Day 2 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = -3 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 11 No changes

141 Day 2 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 6 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 12 No changes

142 Day 2 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 6 – 2 = 4 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 13 No changes

143 Day 2 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 7 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 14 No changes

144 Day 2 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 2 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 7 – 1 = 6 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 15 No changes

145 Day 3 – Day 3 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 3 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 0 – 8 = 8 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 16 No changes

146 Day 3 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = -7 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 17 No changes

147 Day 3 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 2 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 18 No changes

148 Day 3 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 2 – 2 = 0 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 19 No changes

149 Day 3 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 3 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 20 No changes

150 Day 3 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 3 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 3 – 1 = 2 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 21 No changes

151 Day 4 – Day 4 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 4 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 1 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 22 No changes

152 Day 4 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 10 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 23 No changes

153 Day 4 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 10 – 2 = 8 Max Sum: 10 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 24 No changes

154 Day 4 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 11 Max Sum: 11 Maximum Subsequence: Day 1 – Day 7 Addition Counter: 25 Max Sum is 11 and Maximum Subsequence is now Day 4 – Day 7

155 Day 4 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 4 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 11 – 1 = 10 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 26 No changes

156 Day 5 – Day 5 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
No third black pointer any more Day 5 – Day 5 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 9 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 27 No changes

157 Day 5 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 9 – 2 = 7 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 28 No changes

158 Day 5 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 10 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 29 No changes

159 Day 5 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 5 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 10 – 1 = 9 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 30 No changes

160 Day 6 – Day 6 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 6 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 0 – 2 = -2 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 31 No changes

161 Day 6 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 1 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 32 No changes

162 Day 6 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 6 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 1 – 1 = 0 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 33 No changes

163 Day 7 – Day 7 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 7 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: = 3 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 34 No changes

164 Day 7 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 7 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 3 – 1 = 2 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 35 No changes

165 Day 8 – Day 8 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6
Day 8 – Day 8 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum: 0 – 1 = -1 Max Sum: 11 Maximum Subsequence: Day 4 – Day 7 Addition Counter: 36 No changes

166 Some more Analysis We are now only required to do 1 additional counting operation for each sub-sequence compared to at most 8 in the workaholic approach For larger data sets, the number of addition operations will be in the ball park of around n2, where n is the size of the set. Workaholic approach had this as n3

167 The Butcher’s Approach
The Conservative approach reduced the number of additions we needed to do by a factor of n. This is good, but we can do even better than this. Instead of solving the entire problem as a whole, how about cutting the problem down into smaller pieces that we can solve that doesn’t require too much addition, solve those problems, and combine the results to get the final result. Let us call this approach the Butcher’s approach. Photo source:

168 Combine results from smaller problems
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1

169 Solve Max Subsequence for Day 1 – Day 4
3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Left Max Subsequence = Day 1 – Day 2 Addition Counter: 9

170 Solve Max Subsequence for Day 5 – Day 8
3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Right Max Sum (Day 5 – Day 8) = 10 Left Max Subsequence = Day – Day 2 Right Max Subsequence = Day 5 – Day 7 Addition Counter: 18

171 Which side has the Largest Sum?
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Right Max Sum (Day 5 – Day 8) = 10 Left Max Subsequence = Day – Day 2 Right Max Subsequence = Day 5 – Day 7 Left Max Sum > Right Max Sum? No Addition Counter: 18

172 Which side has the Largest Sum?
Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Sum (Day 1 – Day 4) = 7 Right Max Sum (Day 5 – Day 8) = 10 Left Max Subsequence = Day – Day 2 Right Max Subsequence = Day 5 – Day 7 Left Max Sum > Right Max Sum? No Max Side Subsequence = Day 5 – Day 7 Addition Counter: 18

173 Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = 1 Left Max Border Sum = 0 Mid Start = Day 4 Left Max Border Sum is now 1 Addition Counter: 18

174 Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = 1 – 8 = -7 Left Max Border Sum = 1 Mid Start = Day 4 No changes made to Left Max Border Sum Addition Counter: 19

175 Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = = -3 Left Max Border Sum = 1 Mid Start = Day 4 No changes made to Left Max Border Sum Addition Counter: 20

176 Find the Middle Max Subsequence
Find the starting point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Sum = = 0 Left Max Border Sum = 1 Mid Start = Day 4 No changes made to Left Max Border Sum Addition Counter: 21

177 Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = 9 Mid Start = 4 Right Max Border Sum = 0 Mid End= Day 5 Right Max Border Sum is now 9 Addition Counter: 22

178 Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = 9 – 2 = 7 Mid Start = 4 Right Max Border Sum = 9 Mid End= Day 5 No changes made to Right Max Border Sum Addition Counter: 23

179 Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = = 10 Mid Start = 4 Right Max Border Sum = 9 Mid End= Day 5 Right Max Border Sum is now 10 and Mid End is Day 7 Addition Counter: 24

180 Find the Middle Max Subsequence
Find the ending point Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Sum = 10 – 1 = 9 Mid Start = 4 Right Max Border Sum = 10 Mid End= Day 7 No changes made to Right Max Border Sum Addition Counter: 25

181 Mid Max Sum = Left Max Border Sum + Right Max Border Sum = 11
Finding Middle Max Subsequence Compute Middle Max Sum Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Right Max Border Sum = 10 Mid Start = 4 Mid End= Day 7 Mid Max Sum = Left Max Border Sum + Right Max Border Sum = 11 Range: Day 4 through Day 7 Addition Counter: 25

182 Find Max Subsequence for Day 1 – Day 8
Compare subsequence sums Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Right Max Border Sum = 10 Mid Start = 4 Mid End= Day 7 Mid Max Sum = Left Max Border Sum + Right Max Border Sum = 11 Mid Max Sum > Max Side Sum? Yes Addition Counter: 25

183 Find Max Subsequence for Day 1 – Day 8
Max Side Subsequence = Day 5 – Day 7 Left Max Sum = 7 Right Max Sum = 10 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 Left Max Border Sum = 1 Right Max Border Sum = 10 Mid Start = 4 Mid End= Day 7 Left Max Border Sum + Right Max Border Sum = 11 Max Sum is 11 Max Subsequence is Day 4 – Day 7 Addition Counter: 25

184 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Addition Counter:

185 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Addition Counter:

186 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Addition Counter:

187 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Day 1 3 Addition Counter:

188 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Day 1 3 > 0 ? Yes Addition Counter:

189 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Left Max Sum = 3 Addition Counter:

190 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Day 2 Left Max Sum = 3 4 > 0 ? Yes Addition Counter:

191 Solving for Left Half Addition Counter: Day 1 Day 2 Day 3 Day 4 Day 5
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Day 1 Day 2 3 4 Left Max Sum = 3 Left Max Subsequence = Day 1 – Day 1 Right Max Sum = 4 Right Max Subsequence = Day 2 – Day 2 Max Side Subsequence = Day 2 – Day 2 Addition Counter:

192 Solving for Left Half Addition Counter: 1 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Max Side Subsequence = Day 2 – Day 2 Left Max Sum = 3 Right Max Sum = 4 Day 1 Day 2 3 4 Left Max Border Sum = 0 + 3 Addition Counter: 1 midStart = 1

193 Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Max Side Subsequence = Day 2 – Day 2 Left Max Sum = 3 Right Max Sum = 4 Day 1 Day 2 3 4 Left Max Border Sum = 3 Right Max Border Sum = 0 + 4 Addition Counter: 2 midStart = 1 midStart = 2

194 Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Max Side Subsequence = Day 2 – Day 2 Left Max Sum = 3 Right Max Sum = 4 Day 1 Day 2 3 4 Left Max Border Sum = 3 Right Max Border Sum = 0 + 4 midStart = 1 midStart = 2 Addition Counter: 2 Left Max Border Sum + Right Max Border Sum = 7 Max Sum is 7 Maximum Subsequence is Day 1 – Day 2

195 Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Addition Counter: 2

196 Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Day 3 -8 Addition Counter: 2

197 Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Day 4 1 Addition Counter: 2 > 0 ? Yes

198 Solving for Left Half Addition Counter: 2 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Day 3 Day 4 -8 1 Left Max Sum = 0 Left Max Subsequence = Day 3 – Day 3 Right Max Sum = 1 Right Max Subsequence = Day 4 – Day 4 Addition Counter: 2 Max Side Subsequence = Day 4 – Day 4

199 Solving for Left Half Addition Counter: 3 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Max Side Subsequence = Day 4 – Day 4 Left Max Sum = 0 Right Max Sum = 1 Day 3 Day 4 -8 1 Addition Counter: 3 Left Max Border Sum = 0 Mid Start = Day 3

200 Solving for Left Half Addition Counter: 4 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Max Side Subsequence = Day 4 – Day 4 Left Max Sum = 0 Right Max Sum = 1 Day 3 Day 4 -8 1 Addition Counter: 4 Right Max Border Sum = 1 Left Max Border Sum = 0 Mid Start = Day 3 Mid End = Day 4

201 Solving for Left Half Addition Counter: 5 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Max Side Subsequence = Day 4 – Day 4 Left Max Sum = 0 Right Max Sum = 1 Day 3 Day 4 -8 1 Addition Counter: 5 Left Max Border Sum = 0 Right Max Border Sum = 1 Mid Start = Day 3 Mid End = Day 4 Max Sum is 1 Maximum Subsequence = Day 3 – Day 4

202 Solving for Left Half Addition Counter: 5 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Sum = 7 Left Max Subsequence = Day 1 – Day 2 Right Max Sum = 1 Right Max Subsequence = Day 3 – Day 4 Max Side Subsequence = Day 1 – Day 2 Addition Counter: 5

203 Solving for Left Half Addition Counter: 6 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Sum = 4 Left Max Border Sum = 0 Mid Start = Day 2 Left Max Border Sum is now 4 Addition Counter: 6

204 Solving for Left Half Addition Counter: 7 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Sum = = 7 Left Max Border Sum = 4 Mid Start = Day 2 Left Max Border Sum is now 7 and Mid Start is now Day 1 Addition Counter: 7

205 Solving for Left Half Addition Counter: 8 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Sum = -8 Mid Start = Day 1 Mid End = Day 3 Right Max Border Sum = 0 No change to Right Max Border Sum Addition Counter: 8

206 Solving for Left Half Addition Counter: 9 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Sum = = --7 Right Max Border Sum = 0 Mid Start = Day 1 Mid End = Day 3 No change to Right Max Border Sum or Mid End Addition Counter: 9

207 Solving for Left Half Addition Counter: 9 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Right Max Border Sum = 0 Mid Start = Day 1 Mid End = Day 3 Addition Counter: 9

208 Solving for Left Half Addition Counter: 9 Day 1 Day 2 Day 3 Day 4
-8 1 9 -2 3 -1 Max Side Subsequence = Day 1 – Day 2 Left Max Sum = 7 Right Max Sum = 1 Day 1 Day 2 Day 3 Day 4 3 4 -8 1 Left Max Border Sum = 7 Right Max Border Sum = 0 Mid Start = Day 1 Mid End = Day 3 Left Max Border Sum + Right Max Border Sum = 7 Addition Counter: 9 Max Sum is 7 Max Subsequence is Day 1 – Day 2

209 Analysis of Butcher’s Approach
The amount of addition needed for the Butcher’s approach compared to the Workaholic and Conservative approach is extremely small: The simplest maximum subsequence problem is one involving one day. These small problems require no addition. The amount of addition needed from smaller sub problems to slightly larger sub problems grows slowly because we’re doing fewer re-calculations of the same numbers than the last two approaches. We’re simply combining results of the smaller problems. For larger sized problems, the amount of addition that needs to be done is around the ball park of n*log2(n)

210 Fourth Algorithm: The Smart A$$ Approach
We can do even better than the Butcher’s method by making a key observation about the maximum sub-sequence problem – we will NEVER want a negative stock sum! If that’s the case, then we can just ignore additions that become negative when we solve the problem. I call this approach the Smart A$$ approach! This algorithm is very similar to the Conservative approach. However unlike conservative approach, we ignore subsequences with negative accumulated sums. Photo source:

211 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: 3 Sum < 0? No Addition Counter: 1 Max Sum: 3 Maximum Subsequence: Day 1 – Day 1

212 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: = 7 Sum < 0? No Max Sum was: 3 Addition Counter: 2 Maximum Subsequence was: Day 1 – Day 1 Max Sum is now 7 and Maximum Subsequence is Day 1 – Day 2

213 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cend cstart Sum: 7 – 8 = -1 Sum < 0? Yes Max Sum: 7 Addition Counter: 3 Maximum Subsequence: Day 1 – Day 2 Sum is now 0

214 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cend cstart Sum: = 1 Sum < 0? No Max Sum: 7 Addition Counter: 4 Maximum Subsequence: Day 1 – Day 2 No changes

215 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: = 10 Sum < 0? No Max Sum: 7 Addition Counter: 5 Maximum Subsequence: Day 1 – Day 2 Max Sum is now 10 and Maximum Subsequence is Day 4 – Day 5

216 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: 10 – 2 = 8 Sum < 0? No Max Sum: 10 Addition Counter: 6 Maximum Subsequence: Day 4 – Day 5 No changes

217 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum: = 11 Sum < 0? No Max Sum: 10 Addition Counter: 7 Maximum Subsequence: Day 4 – Day 5 Max Sum is 11 and Max Subsequence is Day 4 – Day 7

218 3 4 -8 1 9 -2 3 -1 Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8
Task: remove black triangle mstart mend Day 1 Day 2 Day 3 Day 4 Day 5 Day 6 Day 7 Day 8 3 4 -8 1 9 -2 3 -1 cstart cend Sum:11 – 1 = 10 Sum < 0? No Max Sum: 11 Addition Counter: 8 Maximum Subsequence: Day 4 – Day 7 No changes

219 Last But Not Least – The Analysis
The total number of addition operations needed for the Smart A$$ approach is… Amazing isn’t it! Workaholic = 120, Conservative = 36, Butcher’s = 25 For 1000 days: Workaholic = 167,167,000 Conservative = 500,500 Butcher’s = 9,976 SmartA$$ = 1,000 The Smart A$$ approach is the most efficient algorithm The amount of addition required is around the size of the data set n.

220 Thanks, but! Daryle J. Serrant Debasis Mitra

221 Your feedback will be much appreciated.
1. Is this talk useful to you? 2. If yes, can you describe, how? 3. If no, can you provide any suggestion on what we needed to do to explain algorithms more? 5. Any suggestion on where else may we present this? 6. Do you have any question for us? Debasis Mitra, Computer Science, FIT – Daryle J. Serrant –


Download ppt "The Power of Computing Algorithms"

Similar presentations


Ads by Google