https://github.com/siddhant-vij/concurrent-merge-sort
Merge sort using concurrency in multiple programming languages.
https://github.com/siddhant-vij/concurrent-merge-sort
concurrency cpp go java merge-sort multithreading optimization python
Last synced: about 2 months ago
JSON representation
Merge sort using concurrency in multiple programming languages.
- Host: GitHub
- URL: https://github.com/siddhant-vij/concurrent-merge-sort
- Owner: siddhant-vij
- License: mit
- Created: 2024-03-04T14:54:55.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-03-25T23:09:58.000Z (over 2 years ago)
- Last Synced: 2025-08-19T01:23:31.676Z (10 months ago)
- Topics: concurrency, cpp, go, java, merge-sort, multithreading, optimization, python
- Language: C++
- Homepage:
- Size: 15.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Concurrent Merge Sort
Designed to demonstrate the implementation and efficiency of the merge sort algorithm using concurrent programming techniques across Java, C++, Go, and Python.
This project aims to explore how concurrency can be utilized to speed up the sorting process, comparing the performance of concurrent and sequential approaches. Offers insights into different concurrency models and their application in a common algorithmic challenge.
## Table of Contents
1. [Features](#features)
1. [Technical Scope](#technical-scope)
1. [Installation and Usage](#installation-and-usage)
1. [Contributing](#contributing)
1. [License](#license)
## Features
- Implementation of the merge sort algorithm using threads or processes.
- Option to sort arrays or lists of varying sizes and types.
- Performance analysis comparing concurrent and sequential executions.
- Multi-language support showcasing implementations in Java, C++, Go, and Python.
## Technical Scope
- **Java**: Using ForkJoinPool to parallelize the sorting task.
- **C++**: Leveraging std::thread for multithreading the sorting process.
- **Go**: Implementing goroutines and channels to sort in parallel.
- **Python**: Utilizing concurrent.futures for threading or multiprocessing.
## Installation and Usage
1. **Clone the Repository**:
```bash
git clone https://github.com/siddhant-vij/Concurrent-Merge-Sort.git
```
2. **Navigate to Language Directory**:
```bash
cd Concurrent-Merge-Sort/[language]
```
3. **Install Dependencies**: Standard instructions to be followed for each language, if any external dependency.
4. **Build and Run the Application**: Standard instructions to be followed for each language.
## Contributing
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are **greatly appreciated**.
1. **Fork the Project**
2. **Create your Feature Branch**:
```bash
git checkout -b feature/AmazingFeature
```
3. **Commit your Changes**:
```bash
git commit -m 'Add some AmazingFeature'
```
4. **Push to the Branch**:
```bash
git push origin feature/AmazingFeature
```
5. **Open a Pull Request**
## License
Distributed under the MIT License. See [`LICENSE`](https://github.com/siddhant-vij/Concurrent-Merge-Sort/blob/main/LICENSE) for more information.