Implement Quicksort and Mergesort in Clojure and Another Language, Test, Time, and Analyze Performance In this assignment, you are tasked with implementing the classic sorting algorithms Quicksort and Mergesort in Clojure, as well as in another programming language of your choice. You should define functions quicksort and mergesort that accept a vector of numbers and return a sorted sequence. After implementation, you are to test the correctness of these functions with sample inputs. Furthermore, you need to evaluate and compare their performance by timing the execution on large datasets: a sorted list of 1,000,000 numbers and a reverse-sorted list of 1,000,000 numbers. If the datasets are insufficient to observe notable performance differences, increase the input size accordingly. Finally, analyze the results by answering questions about which algorithm performed faster in each scenario, whether the results align with theoretical expectations, and discuss the performance and ease of implementation in both languages. An extra credit involves comparing your custom implementations with the built-in sorting functions provided by each language and explaining the observed differences.
Paper For Above instruction Implementing efficient sorting algorithms such as Quicksort and Mergesort in Clojure and another language provides valuable insights into algorithmic behavior and language performance characteristics. Below, I present the implementation of both algorithms in Clojure, test their correctness, and then explore their performance through benchmarking. Following this, I compare the results with implementations in a second language—such as Python—to examine differences in execution time and ease of coding. Implementation of Quicksort and Mergesort in Clojure In Clojure, the quicksort