CS 253: Homework 1 Problem 1. Design a program that allows you to experiment with different sort algorithms. This program should allow you to easily plug-in new sort algorithms and compare them. Assume that input data is generated randomly and stored in a text file (have no less than 2000 items to sort). Do not restrict your program to only one data type, or to one ordering relationship. The data type, ordering relationship, and the sorting method must be input parameters for your program. It must produce a comparison chart of all implemented sort algorithms (consider both comparisons and exchanges). Do not forget to include worst and best cases in your empirical study. Start with insertion, selection and bubble sorts (other sorts may be included later as we review/study them in class). Submit a design sheet presenting the overall structure of your program, pseudo-code descriptions of implemented sort algorithms, extended explanation of all of the results that your program generates, a hard copy of the program, and a disk with all the files that I would need to run your program. You can get some help from the code on my Web site, but your program (this and all other homework assignments) must be your individual work! You may design your program in whatever environment you want, but the final version of your program that you submit for grading must run in jdk! Test it, to make sure it does. Problem 2. Design, implement and evaluate in terms of run- time a recursive program that solves the 8-queens problem: determine how 8 queens can be positioned on an 8x8 chessboard so that none of them are in the same row, column, or diagonal as any other queen. Again, submit a design sheet, pseudocode, analysis sheet, hard copy and a disk with all files. This is required for every program you write in this course. And remember -- homeworks are NOT group projects -- EVERY student must work on his/her own!