I need you to develop some software for me. I would like this software to be developed for Windows using Java. This assignment is to alphabetically sort n strings, each with maximum-length of k = 21 characters. (You
may assume n ≤ 1000.) The algorithm to be used is LSD (Least-Significant-Digit-First) radixsort. The
algorithm must run in O(n) time, where one character operation takes one unit of time. You must handle
the strings on a character-by-character basis, one character at a time. (Each character operation takes
The strings consist of only upper-case letters A-Z, with no space. The strings need not be distinct. (For
example, there may be several PATEL in a class list!)
Each string has at most k characters. Shorter strings must be padded with blank characters (as they are
read from a file) to reach the fixed length of k.
First input the strings from a text file “[url removed, login to view]”. Assume that each string starts at the beginning of a new
line and ends with one or more white-space-characters. (An end-of-line character is a white-space.) Store
the strings in a two-dimesional array S with n rows and k columns. That is, string i is stored in S[i, 1..k].
For efficiency, once the strings have been read into array S, they must stay in that order and not be moved
during the sorting. Instead, we use a pointer array (array of string indices) P[0..n−1]. Initially, set P[i] = i
for all i. During the sorting, we move these indices. At the end of sorting, P will be the index of the
string which is the first in the sorted order, P the second string in the sorted order, and so on.
At the end, output the strings in sorted order to a text file “[url removed, login to view]”. Use the same format as the input file,
with each string as one line. (Each string must begin at the beginning of a line and end with an end-of-line
Notes on naming files: For ease of grading, your program must receive the names of input-file and
output-file from the command line. And these file names must have default names “[url removed, login to view]” and “[url removed, login to view]”,
respectively. Then the user will be able to either specify a file name, or decide to go with the default name.
That is, your program will first receive the name of input file.
Please specify the input file (default = [url removed, login to view] ):
After receiving the name of input file, your program will then receive the name of output file.
Please specify the output file (default = [url removed, login to view]):