This repository contains the collaborative work of a group project undertaken by two students, Mahmoud Hammam and Youssef El Ghamour, as part of the ALX Software Engineering program. The project focuses on implementing various sorting algorithms and understanding their time complexities.
- Implementing different sorting algorithms
- Understanding Big O notation and evaluating the time complexity of an algorithm
- Selecting the best sorting algorithm for a given input
- Recognizing stable sorting algorithms
All programs are written in C:
Filename | Description |
---|---|
0-bubble_sort.c |
Sorts an array using Bubble sort |
0-O |
Big O Notations for Bubble sort (best, average, worst cases) |
1-insertion_sort_list.c |
Sorts a doubly linked list using Insertion sort |
1-O |
Big O Notations for Insertion sort (best, average, worst cases) |
2-selection_sort.c |
Sorts an array using Selection sort |
2-O |
Big O Notations for Selection sort (best, average, worst cases) |
3-quick_sort.c |
Sorts an array using Quick sort |
3-O |
Big O Notations for Quick sort (best, average, worst cases) |
100-shell_sort.c |
Sorts an array using Shell sort with Knuth sequence |
101-cocktail_sort_list.c |
Sorts a doubly linked list using Cocktail shaker sort |
101-O |
Big O Notations for Cocktail shaker sort (best, average, worst cases) |
102-counting_sort.c |
Sorts an array using Counting sort |
102-O |
Big O Notations for Counting sort (best, average, worst cases) |
103-merge_sort.c |
Sorts an array using Merge sort |
103-O |
Big O Notations for Merge sort (best, average, worst cases) |
104-heap_sort.c |
Sorts an array using Heap sort (sift-down algorithm) |
104-O |
Big O Notations for Heap sort (best, average, worst cases) |
105-radix_sort.c |
Sorts an array using Radix sort (LSD radix sort algorithm) |
105-O |
Big O Notations for Radix sort (best, average, worst cases) |
106-bitonic_sort.c |
Sorts an array using Bitonic sort |
106-O |
Big O Notations for Bitonic sort (best, average, worst cases) |
107-quick_sort_hoare.c |
Sorts an array using Quick sort with Hoare partition scheme |
107-O |
Big O Notations for Quick sort (best, average, worst cases) |