Lab Assignment 1
- Remember the sorting algorithms quick sort (Tony Hoare, 1959) and merge sort (John von Neumann, 1945).
- Write each sorting algorithm in C and in Haskell by implementing the following functions:
void qsort2(int *a, int n); // quick sort array a with n elements in place in C void msort(int *a, int n); // merge sort array a with n elements in place in C
qsort :: Ord a => [a] -> [a] — quick sort a list in Haskell msort :: Ord a => [a] -> [a] — merge sort a list in Haskell
- Write a brief comment for every line of your code explaining what it does.
- In a separate text file write a few sentences explaining how and why the C and Haskell implementations of the same algorithms differ.
- Write a simple main function (one in C and one in Haskell) to test your sort functions with the input sequence 4, 65, 2, -31, 0, 99, 2, 83, 782, 1 and print the result to the console.