Challenge | Churchill Navigation (original) (raw)

The engineering team at Churchill Navigation is challenging you to beat our solution.

In a nutshell: We give you a bunch of ranked 2D points, then ask you to find the most important ones inside some randomly generated rectangles. Easy, right? Now make it fast!

To get started, just download this .zip file. It contains the problem/interface specification, the testing framework and the reference solution. Note: the reference solution is only provided to check your results. Beating the reference solution doesn’t mean you have a fast solution. You want to smash it! The fastest solutions are consistently over 1000 times faster than the reference.

For Applicants

Solving the challenge requires building a DLL – something many people have never done before. Figuring this out is the first step. It shows us that you can learn independently and can use the tools of the trade.

The second component of the challenge is algorithmic. A fast solution will require using a data structure and writing a traversal algorithm. The very fastest solutions may require a unique data structure designed specifically for this problem. Designing a good data structure and algorithm shows us that you have a strong understanding of the fundamentals of computer science.

The last part of the challenge is optimization. It’s often possible to improve the performance of your algorithm by a factor of 10 or more by the clever use of optimizations. This component shows a deep understanding of the compiler and the way the processor actually runs your code. Optimization is not necessary for a fast solution, but it can often separate a good solution from a truly great one.

For Challengers

Pit your algorithm against the best. Get to the top. The challenge starts with an equal playing field. May the best code win!

The Rules Are Simple

Solution Qualifications

No Messing with the Code

Submission of Your Solution