Using Arrays with Sorting and Searching Algorithms
(based on Module 4 material)
1) This program has six required outputs and involves searching and sorting an array of integers.
Write a Java application that initializes an array with the following numbers, in this order:
23, 17, 5, 90, 12, 44, 38, 84, 77, 3, 66, 55, 1, 19, 37, 88, 8, 97, 25, 50, 75, 61, and 49
Then display the unsorted values. This is required output #1 of 6 for this program.
Using a sequential search of the unsorted array, determine and report the 1-relative (i.e. 1, 2, 3, 4, etc.) positions of the following numbers in the array (or -1 if not found), and the number of searches required to locate the numbers: 25, 30, 50, 75, and 92. This is required output #2 of 6.
Then display the total number of searches for all five numbers. This is required output #3 of 6.
Sort the numbers using any algorithm of your choice and then display the sorted array. This is required output #4 of 6.
Using a binary search of the sorted array, determine and report the 1-relative positions of the following numbers in the array (or -1 if not found), and the number of searches required to locate the numbers: 25, 30, 50, 75, and 92. This is required output #5 of 6.
Finally, display the total number of searches for all five numbers. This is required output #6 of 6.
(There are six required sets of output as numbered in the above paragraphs.) Try to create an object-oriented solution for your solution vs. a procedural one. For example, you might have a class that stores an array passed by a driver class, with methods for sorting the array, searching the array via a sequential search, searching the array via a binary search, and output the current contents of the array. The driver class could not only pass in the initial array values but call various methods to perform the searches, sorting, and array contents display. You may use any output type class you want (e.g. Scanner, JOptionPane).
Be sure that you include the course, the program number, your name, and the date in your program header. Include additional comments as necessary and maintain consistent indentation for good programming style as shown in the text. Be sure that you capture all of your output for this program's execution for full credit!
2) You may use any Java Integrated Development Environment (IDE) you choose to develop your source code, compile and link your code, and execute your program (jGRASP is recommended). Or you may use the Windows Command Prompt.
You are to submit the following deliverables in a single Microsoft Word file in this order, and clearly labeled.
a) A screen snapshot of your Java source code (all file(s) shown separately) displayed in the IDE or Windows editor showing a successful compilation if possible (only the beginning of the source file(s) are necessary).b) A listing of your entire source code file(s).
c) A screen snapshot of all of your program's outputs for the specified values in Step #1. For this program there are 6 (six) total sets of item(s) to be output. Failure to show any of them will result in lost points. In order not to confuse the grading process, and possible lose points, do not include any other outputs besides these six items.
3) Your instructor may compile and run your program to verify its correctness.
4) You will be evaluated on (in order of importance):
a) Following directions and inclusion and packaging of all deliverables in Step #2.
b) Correct execution of your program (this includes proper compilation). This also includes getting the correct answers!
c) Proper commenting of your Java code and indentation (as specified in the text).
d) Neatness in packaging of your deliverables (to include putting the items in Step #2 in the correct