This repository holds the implementation of various Sorting, Searching and Data Structures written in the C programming language, based on a course named Data Structures, that I completed during my second year of studies in the Computer Engineering and Informatics Department at the University of Patras.
In the Sorting folder, you can find the implementations of popular sorting algorithms in the C programming language, and the folder is structured as such:
- Bubble Sort.c: The implementation of the bubble sort algorithm.
- Insertion Sort.c: The implementation of the insertion sort algorithm.
- Selection Sort.c: The implementation of the selection sort algorithm.
- Merge Sort.c: The implementation of the merge sort algorithm.
- Quick Sort.c: The implementation of the quick sort algorithm.
- Heap Sort.c: The implementation of the heap sort algorithm.
- All Sorts Timed.c: All the algorithms put to the test, and individually timed to confirm the best.
In the Searching folder, you can find the implementations of popular searching algorithms in the C programming language, and the folder is structured as such:
- Linear Search.c: The implementation of the linear search.
- Binary Search.c: The implementation of the binary search. It also has the Quick Sort algorithm.
- Interpolation Search.c: The implementation of the interpolation search and the Quick Sort algorithm.
- Binary Interpolation Search.c: The binary version of the interpolation search, along with the Quick Sort algorithm.
- All Searches Timed.c: All the algorithms put to the test, and individually timed to confirm the best.
In the BST & HashTable folder, you can find the implementations of a Binary Search Tree and a HashTable in the C programming language, used to hold information regarding students and their grades, and the folder is structured as such:
- BST and HashTable.c: The implementation of both Data Structures.
- Students.txt: The data used to fill the BST and the HashTable.
