# Python Program for Activity Selection Problem | Greedy Algo-1

*You are given n activities with their start and finish times. Select the maximum number of activities that can be performed by a single person, assuming that a person can only work on a single activity at a time.*

Example:

Example 1 :Consider the following 3 activities sorted by by finish time. start[] = {10, 12, 20}; finish[] = {20, 25, 30}; A person can perform at mosttwoactivities. The maximum set of activities that can be executed is {0, 2} [ These are indexes in start[] and finish[] ]Example 2 :Consider the following 6 activities sorted by by finish time. start[] = {1, 3, 0, 5, 8, 5}; finish[] = {2, 4, 6, 7, 9, 9}; A person can perform at mostfouractivities. The maximum set of activities that can be executed is {0, 1, 3, 4} [ These are indexes in start[] and finish[] ]

## Python

`"""The following implementation assumes that the activities ` `are already sorted according to their finish time"""` ` ` `"""Prints a maximum set of activities that can be done by a ` `single person, one at a time"""` `# n --> Total number of activities ` `# s[]--> An array that contains start time of all activities ` `# f[] --> An array that contains finish time of all activities ` ` ` `def` `printMaxActivities(s, f ): ` ` ` `n ` `=` `len` `(f) ` ` ` `print` `"The following activities are selected"` ` ` ` ` `# The first activity is always selected ` ` ` `i ` `=` `0` ` ` `print` `i, ` ` ` ` ` `# Consider rest of the activities ` ` ` `for` `j ` `in` `xrange` `(n): ` ` ` ` ` `# If this activity has start time greater than ` ` ` `# or equal to the finish time of previously ` ` ` `# selected activity, then select it ` ` ` `if` `s[j] >` `=` `f[i]: ` ` ` `print` `j, ` ` ` `i ` `=` `j ` ` ` `# Driver program to test above function ` `s ` `=` `[` `1` `, ` `3` `, ` `0` `, ` `5` `, ` `8` `, ` `5` `] ` `f ` `=` `[` `2` `, ` `4` `, ` `6` `, ` `7` `, ` `9` `, ` `9` `] ` `printMaxActivities(s, f) ` ` ` `# This code is contributed by Nikhil Kumar Singh ` |

*chevron_right*

*filter_none*

**Output:**

The following activities are selected 0 1 3 4

Please refer complete article on Activity Selection Problem | Greedy Algo-1 for more details!

## Recommended Posts:

- Python Program to print digit pattern
- Python | Extract key-value of dictionary in variables
- Python program to convert time from 12 hour to 24 hour format
- Python | Animated Banner showing 'GeeksForGeeks'
- Python | Segregate list elements by Suffix
- Python Program for Selection Sort
- Python Program for Bubble Sort
- Python Program for Insertion Sort
- Python Program for Heap Sort
- Python Program for Counting Sort
- Python Program for Radix Sort
- Python Program for n-th Fibonacci number
- Python Program for Counting Sort
- Python Program for ShellSort
- Python Program for Longest Common Subsequence