Algorithms and Datastructures are the fundamentals of a strong programmer. This repository is part of this life long persuit of mastery.
Many of the algorithms and datastructures I've included are trivial. There here as a marker of where I started and how far I've come.
This repository is meant to serve as a log and a central location for the algorithms and data-structures I'm practicing/working on. In addition, there are some of the more important or famous problems solved using the included algorithms/datastructures.
- QuickFind
- UnionFind
- BinarySearch
- Selection sort
- Insertion Sort
- Shell Sort - using 3x+1 incrementing for a Big O of nlogn.
- Merge Sort - using recursion for implementation.
- Quicksort - my first pass at quicksort. There's currently a bug in my solution, looking for a resolution to the infinite loop.
- Linked List: a few methods including insert node, insert last node, remove node, insert at index, and clear list.
- Stacks: push and pop methods. Really basic for practice.
- Queues: similar to stack methods.
- 3Sum Problem (updated with brute force method and a revised version using BinarySearch BigO of n^2Logn)
- FizzBuzz
- Shuffle Deck: using a deck of cards, created a shuffle algorithm to shuffle the deck.
This repository should be active and on going. At this time it's primarily used as a personal log. If you'd like to contribute or provide feedback on a specific algorithm/datatype, please contact me first.