Skip to content

feat: add activity selection problem (greedy algorithms) - #3208

Open
humaisali wants to merge 2 commits into
TheAlgorithms:masterfrom
humaisali:add-activity-selection-greedy
Open

feat: add activity selection problem (greedy algorithms)#3208
humaisali wants to merge 2 commits into
TheAlgorithms:masterfrom
humaisali:add-activity-selection-greedy

Conversation

@humaisali

Copy link
Copy Markdown

Description of Change

Adds a new greedy algorithm implementation: the Activity Selection Problem
(greedy_algorithms/activity_selection.cpp). Given a set of activities each
with a start and finish time, the algorithm selects the maximum number of
non-overlapping activities that a single resource can perform, using the
classic greedy strategy of always choosing the next activity with the
earliest finish time. Runs in O(n log n) due to the sort step.

This algorithm was not previously present anywhere in the repository (I
searched the codebase across all directories before implementing it).

Checklist

  • Added description of change
  • Added file name matches File name guidelines
  • Added tests and example, test must pass
  • Added documentation so that the program is self-explanatory and educational - Doxygen guidelines
  • Relevant documentation/comments is changed or added
  • PR title follows semantic commit guidelines
  • Search previous suggestions before making a new one, as yours may be a duplicate.
  • I acknowledge that all my contributions will be made under the project's license.

Notes: New greedy algorithm implementation, Activity Selection Problem, with 5 self-tests covering normal, single-activity, empty-input, fully-overlapping, and non-overlapping cases.

@humaisali

Copy link
Copy Markdown
Author

Hi @Panquesito7 & @realstealthninja, this is my first contribution to the project. I've implemented the Activity Selection Problem as a new greedy algorithm following the guidelines in CONTRIBUTING.md - Doxygen documentation, snake_case naming, self-contained tests with assert(), and formatting/static analysis checked against the repo's own .clang-format and .clang-tidy configs.

Whenever you get a chance, I'd really appreciate a review. Happy to make any changes needed. Thanks for maintaining this project!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant