Giter VIP home page Giter VIP logo

binarysearchtree's Introduction

Binary Search Tree Exercise

Here is an exercise that you can do if you want to implement a binary search tree.

There is a "skeleton" in place, in the form of empty functions that you can fill out. If you run the program, it will test these functions to see if they work. At first, these tests will all fail. But if you implement these functions correctly, the tests will pass.

After passing all of the functional tests, the program will run some performance tests and show you the results.

Solutions

If you want to see a working implementation, check out the implementation_complete tag.

Example Output

The following shows what the output looks like when your binary search tree implementation is correct and you run the program.

testAddNode PASSED
testFindNode PASSED
testGetNodeLevel PASSED
testRemoveLeaf PASSED
testRemoveNodeWithOneChild PASSED
testRemoveNodeWithTwoChildren PASSED
testRemoveRootNode PASSED

Linear search time for 100 elements: 14 microseconds
Binary search time for 100 elements: 11 microseconds
The linear search took 1.27273 times longer than the binary search

Linear search time for 1000 elements: 1072 microseconds
Binary search time for 1000 elements: 84 microseconds
The linear search took 12.7619 times longer than the binary search

Linear search time for 10000 elements: 110541 microseconds
Binary search time for 10000 elements: 1894 microseconds
The linear search took 58.3638 times longer than the binary search

Linear search time for 100000 elements: 10753216 microseconds
Binary search time for 100000 elements: 21353 microseconds
The linear search took 503.593 times longer than the binary search

Notice that the Linear and Binary search times are very similar when there are a small (100) number of items; but, when there are a lot of times (100,000) the binary search is over 500 times faster!

binarysearchtree's People

Contributors

fpsulli3 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.