Important notice - As of April 2024 I am deprecating this repository in favour of separate repos for each language with more robust examples and explanations.
This repo will remain live until I have ported out all existing implementations into their updated repositories, at which time I will phase out this repo.
This repo will contain commonly requested algorithms and coding problems for coding interviews.
I will be using this as an opportunity to practice my own implementation skills and to improve my coding ability. I hope that others may utilise the code to aid with their own understanding.
All code will be fully commented to aid with this educational task. I intend on producing multiple implementations for each algorithm/ concept in different languages over time.
The table below is a reflection of what is currently implemented and in which languages.
| Category | Algorithm/ Concept | Languages implemented |
|---|---|---|
| Sorting | Bubble sort | C, Python, Java, Kotlin, Go, Scala |
| Sorting | Insertion sort | C, Python, Java, Kotlin, Go, Scala |
| Sorting | Merge sort | C, Python, Java, Kotlin, Go, Scala |
| Sorting | Quick sort | C, Python, Java, Kotlin, Scala |
| Sorting | Heap sort | Python |
| Sorting | Selection sort | C, Python, Java, Kotlin, Scala |
| Searching | Linear search | C, Python, Java, Kotlin, Go, Scala |
| Searching | Binary search | C, Python, Java, Kotlin, Scala |
| Data structures | Linked list | C, Python, Java |
| Data structures | Stack (Array and Linked List) | C, Python |
| Data structures | Queue (Array and Linked List) | C, Python |
| Data structures | Hash Table | |
| Data structures | Tree | Python |
| Data structures | Graph | Python |
| Other | Recursion | C, Python |
| Other | Bit manipulation | C |