Skip to content

Bhavesh9908/ Building a KD-Tree from Points #11541

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

Closed
wants to merge 1 commit into from

Conversation

Bhavesh9908
Copy link

@Bhavesh9908 Bhavesh9908 commented Sep 3, 2024

Describe your change:

Added the KD-Tree construction algorithm to the repository.
The 'build_kdtree' function has been implemented to construct a KD-Tree from a list of points, handling different depths and dimensions.
Includes type annotations for better code clarity and maintenance.
The algorithm recursively splits the points based on the median of the axis determined by the depth of the tree.
Added doctests to verify the correctness of the algorithm.

Removed depth from test_build_kdtree: If depth is not used, it's best to remove it. The function build_kdtree should not rely on it unless explicitly designed to do so.
Check for KDNode: Simplified the type checking for KDNode to ensure the KD-Tree is built correctly.
Edge Case Handling: Ensured that edge cases are properly handled with the assumption that an empty KD-Tree should be handled by nearest_neighbour_search.
Ensure that your 'build_kdtree', 'hypercube_points', and 'nearest_neighbour_search' functions are correctly implemented and compatible with the tests.

  • Add an algorithm?

Checklist:

  • [+ ] I have read CONTRIBUTING.md.
  • [+ ] This pull request is all my own work -- I have not plagiarized.
  • [ +] I know that pull requests will not be merged if they fail the automated tests.
  • [+ ] This PR only changes one algorithm file. To ease review, please open separate PRs for separate algorithms.
  • [+ ] All new Python files are placed inside an existing directory.
  • [+ ] All filenames are in all lowercase characters with no spaces or dashes.
  • [+ ] All functions and variable names follow Python naming conventions.
  • [ +] All function parameters and return values are annotated with Python type hints.
  • [ +] All functions have doctests that pass the automated testing.
  • [+ ] All new algorithms include at least one URL that points to Wikipedia or another similar explanation.
  • If this pull request resolves one or more open issues then the description above includes the issue number(s) with a closing keyword: "Fixes #ISSUE-NUMBER".

@algorithms-keeper
Copy link

Closing this pull request as invalid

@Bhavesh9908, this pull request is being closed as none of the checkboxes have been marked. It is important that you go through the checklist and mark the ones relevant to this pull request. Please read the Contributing guidelines.

If you're facing any problem on how to mark a checkbox, please read the following instructions:

  • Read a point one at a time and think if it is relevant to the pull request or not.
  • If it is, then mark it by putting a x between the square bracket like so: [x]

NOTE: Only [x] is supported so if you have put any other letter or symbol between the brackets, that will be marked as invalid. If that is the case then please open a new pull request with the appropriate changes.

@algorithms-keeper algorithms-keeper bot closed this Sep 3, 2024
@algorithms-keeper algorithms-keeper bot added the awaiting reviews This PR is ready to be reviewed label Sep 3, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
awaiting reviews This PR is ready to be reviewed invalid
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant