sr6033 / dataStructure-Algorithms

Implementations of various data structures and algorithms using C/C++, Python & Java.
https://sr6033.github.io/dataStructure-Algorithms/
MIT License
7 stars 14 forks source link
algorithms c cpp data-structures java python

Data Structures & Algorithms

This repository serves as an implementation of the various data structures and algorithms that I am studying in my undergrad studies of Computer Science Engineering. I am trying to implement them in 3 languages(C/C++, Python, Java).

Programmers willing to contribute or add more language efficiencies are most welcome to send pull requests.

IMPORTANT

Space and Time Complexities of Various Algorithms

Algorithms Best Case Time Complexity Average Case Time Complexity Worst Case Time Complexity Worst Case Space Complexity
Linear Search Ω(1) Θ(n) O(n) O(1)
Binary Search Ω(1) Θ(log(n)) O(log(n)) O(1)
Selection Sort Ω(n^2) Θ(n^2) O(n^2) O(1)
Bubble Sort Ω(n) Θ(n^2) O(n^2) O(1)
Insertion Sort Ω(n) Θ(n^2) O(n^2) O(1)
Merge Sort Ω(n log(n)) Ω(n log(n)) O(n log(n)) O(n)
Quick Sort Ω(n log(n)) Θ(n log(n)) O(n^2) O(log(n))
Counting Sort Ω(n+k) Θ(n+k) O(n+k) O(k)
Radix sort Ω(nk) Θ(nk) O(nk) O(n+k)
Heap Sort Ω(n log(n)) Θ(n log(n)) O(n log(n)) O(1)
Tree Sort Ω(n log(n)) Ω(n log(n)) O(n^2) O(n)
Bucket sort Ω(n+k) Ω(n+k) O(n^2) O(n)
Cube Sort Ω(n) Θ(n log(n)) O(n log(n)) O(n)
Tim Sort Ω(n) Ω(n log(n)) O(n log(n)) O(n)