Assignment: Implementing and Analyzing a Threaded Sort Algorithm

Once a software application has been implemented and released, that is by no means the end of development. There are all kinds of causes requiring software to be changed, from users reporting bugs, through changes in third-party software, to updates for improved performance. A critical skill of software developers is the ability to understand and update a programs algorithm.

For this Assignment, you will update an existing Java program using the NetBeans IDE. You will use the NetBeans Integrated Development Environment to make changes to an existing NetBeans Java Project. This existing program correctly sorts the data without using threads and contains a method (threadedSort) that you will update to sort the data using threads.

The Java Project contains three class files: MergeSort.java, Sort.java, and SortTest.java.Double-click each file in the Project section (at the left of the NetBeans IDE window) to display the files contents. Each of the Java class files contains comments explaining the purpose of the class and the purpose of the class methods.

Modify the Java program by adding threads, and analyze the performance of both the threaded and non-threaded versions.

  • Modify the Program:

    Improve the performance of the Java program by adding threads to the Sort.java file. Implement the threadedSort() method within the Sort class. Reuse any of the existing methods by calling them as necessary from your threadedSort method. You may add additional methods to the Sort class, if necessary.

  • Analyze the Program:

    When running the provided SortTest program, the output presents data to support analyzing the performance of the threaded and non-threaded sort methods. Analyze your threaded implementation by comparing its performance to the original non-threaded implementation and explain the measured behavior. Document your analysis as a short paper (13 pages), using APA format. Be sure to discuss the relative performance improvement you expect for your threaded implementation and how the expected performance compares to the measured performance.

This assignment requires the threaded java scripts along with the 1-3 page paper.