Develop a program which enables you to experiment along with the various sort algorithms. This program must allow you to easily plug-in the new sort algorithms and provide comparison between them.
Suppose that the input data is created randomly and stored within the 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 sorting method should be input parameters for your program. It should generate a comparison chart of all the implemented sort algorithms (consider both comparisons and exchanges). Do not forget to involve the worst and best cases in your empirical study. Start with the insertion, selection and bubble sorts.