Using Python create a program that visualizes various sorting algorithms in action. The program will allow the user to select a sorting algorithm, input an array of numbers to sort, and watch the sorting process in real-time. The program should include the following sorting algorithms: 1. Bubble Sort 2. Selection Sort 3. Insertion Sort 4. Merge Sort 5. Quick Sort 6. Heap Sort The program should also display relevant information about each sorting algorithm, suchas its time complexity and how it works.The program should be interactive, allowing the user to pause, resume, and reset the sorting process. The user should also be able to adjust the speed of the visualization. Finally, the program should allow the user to compare the performance of different sorting algorithms on the same set of data. This can be done by displaying the time taken to sort the array using each algorithm.