Part A.1 Do a selection sort according to the textbook using the random number generator. (You may copy the code from the textbook for the sorting algorithm). Your program asks the size of data and the range of data (smallest int and the largest int). Then you generate the number of data within the range of the data. You write the data into a file as shown below.
Program Sorting> Please enter the size of data: 1000
Program Sorting> Please enter the smallest value:1
Program Sorting> Please enter the largest value:10000
Program Sorting> Please enter the name of data file: data1
Then your program produces 1000 integer ranging from 1to 10000 in the array and then sort them in ascending order and then print the result into data.txt file. (You may list integers separated by space or new line)
Part A.2 Now you implement two search methods - linear search and binary search. You can use the sorted array from Part A.1 by continuing Part A Program to ask for keys to search. And you are required to read a data file provided by me as an input file. The name of input file should be given as an input argument to your program as below;
Java MySearch.class data1.txt
If argument is not given, then the program uses the default setting of the sorted array from the randomly produced data at A.1.
Program SortingAndSearch> Please enter the size of data: 1000
Program SortingAndSearch> Please enter the smallest value:1
Program SortingAndSearch> Please enter the largest value:10000
Program SortingAndSearch> Please enter the name of data file: data1
Program SortingAndSearch> Enter a key to search: 9999
Found at index 999 after 999 iterations of linear search
Found at index 999 after 9 iterations of binary search
Do you like to continue? Enter a key (negative int means you want to quit): 500
Found at index 49 after 49 iterations of linear search
Found at index 49 after 9 iterations of binary search
Do you like to continue? Enter a key (negative int means you want to quit): -1