-
-
Notifications
You must be signed in to change notification settings - Fork 46.9k
Add bidirectional search algorithm implementation #12649
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add bidirectional search algorithm implementation #12649
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Click here to look at the relevant links ⬇️
🔗 Relevant Links
Repository:
Python:
Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.
algorithms-keeper
commands and options
algorithms-keeper actions can be triggered by commenting on this PR:
@algorithms-keeper review
to trigger the checks for only added pull request files@algorithms-keeper review-all
to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.
for more information, see https://pre-commit.ci
…on into add-bidirectional-search
for more information, see https://pre-commit.ci
…on into add-bidirectional-search
for more information, see https://pre-commit.ci
…on into add-bidirectional-search
for more information, see https://pre-commit.ci
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Click here to look at the relevant links ⬇️
🔗 Relevant Links
Repository:
Python:
Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.
algorithms-keeper
commands and options
algorithms-keeper actions can be triggered by commenting on this PR:
@algorithms-keeper review
to trigger the checks for only added pull request files@algorithms-keeper review-all
to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.
for more information, see https://pre-commit.ci
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Click here to look at the relevant links ⬇️
🔗 Relevant Links
Repository:
Python:
Automated review generated by algorithms-keeper. If there's any problem regarding this review, please open an issue about it.
algorithms-keeper
commands and options
algorithms-keeper actions can be triggered by commenting on this PR:
@algorithms-keeper review
to trigger the checks for only added pull request files@algorithms-keeper review-all
to trigger the checks for all the pull request files, including the modified files. As we cannot post review comments on lines not part of the diff, this command will post all the messages in one comment.NOTE: Commands are in beta and so this feature is restricted only to a member or owner of the organization.
for more information, see https://pre-commit.ci
Pull Request Description for Bidirectional Search Algorithm
What I've Added
I've implemented a Bidirectional Search algorithm in Python that efficiently finds the shortest path between two nodes in a graph.
Bidirectional Search Algorithm
The algorithm works by simultaneously searching forward from the source node and backward from the target node, meeting in the middle. This approach significantly reduces the search space compared to traditional unidirectional searches, especially in large graphs.
Key features of this implementation:
Complexity:
This is significantly better than the O(b^d) complexity of a unidirectional approach.
Why This Contribution Is Valuable
This algorithm fills a gap in the current graph algorithm collection in the repository. Bidirectional search is an important technique in pathfinding with applications in:
The implementation follows the repository's code style and documentation standards, making it consistent with existing algorithms.
Test Cases
The implementation includes several test cases demonstrating:
I've manually verified all test cases to ensure correctness.
Checklist: