Skip to content

youssefelghamour/sorting_algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

0x1B. C - Sorting algorithms & Big O

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.

Objectives

  • 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

Files

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)