feature: 20250420 #13
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This pull request introduces significant enhancements to the codebase, including the addition of Kruskal's algorithm and binary search implementations, along with their corresponding unit tests. It also updates the VSCode configuration files for improved development environment settings.
Algorithm Implementations:
src/graph/kruskal.hpp): Added a complete implementation of Kruskal's algorithm for finding the Minimum Spanning Tree (MST), including aKruskalEdgestructure, aDisjointSetclass, and utility functions likeisConnected.src/search/binary_search.hpp): Introduced a namespaceclavis::searchwith multiple binary search methods, including standard binary search, lower/upper bounds, and predicate-based search, all using modern C++ concepts.Unit Tests:
tests/graph/kruskal_test.cpp): Added comprehensive test cases for Kruskal's algorithm, covering small graphs, disconnected graphs, cycles, and graphs with multiple MSTs.tests/search/binary_search_test.cpp): Added extensive tests for all binary search methods, including edge cases, different data types, and predicate-based searches.Development Environment:
.vscode/settings.jsonto specifyclangas the default compiler, set the C++ standard toC++20, and configure IntelliSense mode and include paths..vscode/c_cpp_properties.jsonfor readability.