This repository contains a number of Java projects.
The following is a list of the projects included in this repository:
A subset of common data structures and algorithms:
- Binary Search: Recursive binary search.
- Binary Search Tree: Binary search tree implementation that inserts and deletes nodes.
- Graphs: Various graphs.
- Graph Builder (Dijkstra etc): Graphs: Dijkstra's shortest path algorithm, cycle detection, strongly connected search.
- Simple Graph Builder: Simple graph builder.
- Leftist Binary Tree: Leftist binary tree.
- Lexicographic Order: Program that generates the lexicographic ordering for a given character array.
- Linked Lists: Various linked list examples.
- Circular and Self-Organising Linked Lists: Circular and self-organising linked lists.
- Singly Linked List: Singly-linked linked list.
- Recursion: Recursive algorithms.
- Ackermann: Ackermann algorithm
- Knapsack: Knapsack algorithm.
- Sorting Algorithms: Simple sorting algorithms.
- Advanced Sorting Algorithms: Advanced sorting algorithms with a lower runtime complexity.
- Merge Sort: Merge sort.
- Quick Sort: Quick sort.
- Simple Sorting Algorithms: Simple sorting algorithms with a higher runtime complexity.
- Bubble Sort: Bubble sort (and reverse bubble sort).
- Insertion Sort: Insertion sort (and reverse insertion sort).
- Recursive Bubble Sorter: Recursive bubble sorter (and reverse insertion sort).
- Selection Sort: Selection sort (and reverse selection sort).
- Advanced Sorting Algorithms: Advanced sorting algorithms with a lower runtime complexity.
- Sparse Matrix: Sparse matrix as calendar.
- Stacks and Queues: Stack and queue implementations.
- List in terms of a Queue in terms of a Stack: List class implemented in terms of a queue implemented in terms of a stack.
A subset of commonly used Design Patterns:
- Factory Pattern: The Factory pattern.
- Singleton: The Singleton pattern.
- Strategy Pattern: The Strategy pattern.
Genetic algorithms:
- Renko Stock Trader: Genetic Algorithm, and hill climber optimiser, to determine the best stock market trader based on historic Renko chart trading data from a set of four companies.
- Travelling Salesman: Travelling Salesman.
Input-output processing:
- Buffered Image: Class that gets the RGB values of an image and calculates the bin classes for each image.
- Image to Binary: Class that converts an image into a binary file.
- JSON Converter: Class that converts data in JSON format to a txt format.
Various machine learning projects:
- Naive Bayesian Text Classifier: Naive Bayesian text classifier.
Various mathematics-inspired programs:
- Kaprekar: Program to calculate the number of iterations needed in order to find the Kaprekar constant for a 4-digit number with at least three different digits.
- Matrix Library: Various elementary matrix operations.
- Puzzles: Various mathematical puzzles (Armstrong numbers, Sieve of Eratosthenes etc).
Various other projects:
- Java 8: Various Java 8 functionalities.
- Lambda Expressions: Lambda expressions