Download presentation
Presentation is loading. Please wait.
Published byClara Stafford Modified over 9 years ago
2
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.
3
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.
4
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
5
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
6
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.
7
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. “Quicksort’s best-case performance works in O(n log n), as opposed to Bubble Sort’s O(n 2 )” ▪ This is technically correct. ▪ It is likely meaningless to your target audience. Focus more on why your replacement algorithm is efficient than why Bubble Sort is inefficient.
8
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.
9
You are writing to Novice programmers. This should be longer, and more detailed. About 4-6 pages. 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.
10
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.
11
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 zip codes (or 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.
12
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.
13
Any questions?
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.