1 / 12

# - PowerPoint PPT Presentation

Algorithm Description. Dinky Database Dantai. The Dinky Database Dantai has received an unreasonable number of complaints about the speed of their Zip Code sorting procedure DDD has hired you as a contractor.

Related searches for

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

## PowerPoint Slideshow about '' - vincent

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

### Algorithm Description

• The Dinky Database Dantai has received an unreasonable number of complaints about the speed of their Zip Code sorting procedure

• DDD has hired you as a contractor.

• In particular, they want you to analyze their system and determine what is slowing down the procedure.

• Once you have determined the problem, they would like you to recommend a solution to fix the problem.

• Upon examining the sorting algorithm, you have determined that DDD is using Bubble Sort to sort its data.

• As a knowledgeable individual on the subject of sorting algorithms, you are aware of a number of more efficient alternatives.

• Note: DDD’s records include:

• 5 digit US Zip Codes

• 95064

• 9 digit numeric US Zip Codes

• 95064-0028

• 6 digit alpha-numeric Canadian Zip codes

• V8V 1X1

• Solid choices: Merge sort or Quicksort

• For students with a limited programming background, Quicksort is slightly easier to understand and explain.

• Other choices:

• Radix sort

• Bucket sort

• Heap sort

• You have two basic writing tasks:

• An Executive Summary for the Manager in charge of deciding whether to authorize the change.

• An Implementation section for the programmers who will be writing the new algorithm.

• This manager may or may not have any technical expertise.

• His or her last experience with mathematics beyond Algebra may have been in High School.

• Any explanations like “Quicksort’s best-case performance works in O(n log n), as opposed to Bubble Sort’s O(n2)”may as well be written in Esperanto.

• Focus more on why your replacement algorithm is efficient than why Bubble Sort is inefficient.

• Present your arguments in terms the Executive is interested in.

• Faster.

• Less expensive.

• Easy to implement.

• The Executive Summary should be brief.

• Typically 1-2 pages.

• You are writing to Novice programmers.

• You don’t know what system they’re writing for, or what programming language they’re using.

• Your job is to explain how the algorithm works, not to program it for them.

• Define your terms:

• Recursion

• If you are recommending a recursive algorithm, you will need to define recursion. (Most sorting algorithms use recursion)

• Divide and Conquer

• Again, not all sorting algorithms use this technique, but for those that do, explain the term.

• A simple graph can describe rather eloquently how efficient your algorithm can be.

• Make certain your graph will be clear to its intended audience.

• Examples of your sorting algorithm can help the reader understand.

• Give a short list of numbers and demonstrate how your sorting algorithm would sort them, step by step.

• You are free to make your own examples, or borrow (properly cited) examples from the internet or elsewhere.

• It is acceptable to use short bits of Pseudo-code to demonstrate your methods.

• Do not use long sections of Pseudo-code.

• Your job is to explain how the process works, not to write the program for them.

• In short, you can use Pseudo-code to illustrate something you’ve explained in English.

• But you may not simply write out the Pseudo-code for the process and then explain it line by line.