Welcome to the Algorithm Showcase repository! This project demonstrates the implementation of key sorting algorithms across multiple programming languages, including C++, Go, Java, Python, and Rust. Whether you're a student, developer, or enthusiast, this repository serves as a practical reference to understand and compare how different languages handle algorithmic tasks.
In this repository, you'll find implementations of the following popular sorting algorithms:
- Bubble Sort: A simple comparison-based algorithm that repeatedly steps through the list, compares adjacent elements, and swaps them if they are in the wrong order.
- Insertion Sort: A simple comparison-based algorithm that builds the final sorted array one item at a time.
- Selection Sort: A simple comparison-based algorithm that divides the input list into two parts: the sublist of items already sorted and the sublist of items remaining to be sorted.
- Merge Sort: A comparison-based algorithm that divides the input array into two halves, recursively sorts the two halves, and then merges the sorted halves.
- Quick Sort: A comparison-based algorithm that picks an element as a pivot and partitions the given array around the picked pivot.
- Heap Sort: A comparison-based algorithm that uses a binary heap data structure to sort the elements.
- Radix Sort: A non-comparison-based algorithm that sorts the elements by first grouping the individual digits of the same place value and then sorting the elements according to their increasing/decreasing order.
- Counting Sort: A non-comparison-based algorithm that sorts the elements by counting the number of occurrences of each unique element in the input array.
- Bucket Sort: A non-comparison-based algorithm that divides the input array into a number of buckets, each of which is then sorted individually.
Each algorithm is implemented in the following programming languages:
- C++ (https://cplusplus.com/)
- Go (https://go.dev/)
- Java (https://www.java.com/)
- Python (https://www.python.org/)
- Rust (https://www.rust-lang.org/)
The repository is structured as follows:
- CPlusPlus: Contains C++ implementations of the sorting algorithms.
- GO: Contains Go implementations of the sorting algorithms.
- Java: Contains Java implementations of the sorting algorithms.
- Python: Contains Python implementations of the sorting algorithms.
- Rust: Contains Rust implementations of the sorting algorithms.