# Merge Sort in Rust
This is an implementation of the Merge Sort algorithm in Rust. Merge Sort is an efficient, stable, and comparison-based sorting algorithm known for its performance.
## Usage
To use the `sort` function provided in this module, simply call it with a mutable reference to a vector of comparable elements.
```rust
use prksort::*;
let mut arr = vec![5, 2, 3, 1, 4];
mergesort::sort(&mut arr);
println!("Sorted array: {:?}", arr); // Output: Sorted array: [1, 2, 3, 4, 5]
```
This will sort the elements of the vector in ascending order.
The `sort` function works with any type `T` that implements the `PartialEq`, `PartialOrd`, and `Copy` traits. This means that the elements of the vector must support comparisons and be copyable.
```rust
use prksort::*;
let mut arr = vec!['e', 'b', 'c', 'a', 'd'];
mergesort::sort(&mut arr);
println!("Sorted array: {:?}", arr); // Output: Sorted array: ['a', 'b', 'c', 'd', 'e']
```
## Functionality
The `sort` function sorts the input vector in-place using the Merge Sort algorithm.
The `merge` function is a helper function used by the `sort` function to merge two sorted slices into one sorted slice.
## License
This code is provided under the MIT License. You can find the full license text in the LICENSE file.
## Contribution
Contributions are welcome! If you find any issues or have suggestions for improvements, feel free to open an issue or create a pull request on GitHub.
# Quick Sort in Rust
This is an implementation of the Quick Sort algorithm in Rust. Quick Sort is a widely used sorting algorithm known for its efficiency and simplicity.
## Usage
To use the `sort` function provided in this module, simply call it with a mutable reference to an array or slice of comparable elements.
```rust
use prksort::*;
let mut arr = vec![5, 2, 3, 1, 4];
quicksort::sort(&mut arr);
println!("Sorted array: {:?}", arr); // Output: Sorted array: [1, 2, 3, 4, 5]
```