Welcome to the Java Algorithms and Data Structures project repository! This repository houses the code and documentation for the algorithms and data structures I've implemented as part of my algorithms class. The primary goal of this project is to showcase my understanding of fundamental algorithms and their application in solving various computational problems.
In this project, I delve into the world of algorithms and data structures using Java. I have implemented well-known algorithms and data structures, providing both theoretical explanations and practical code examples. Through this project, I aim to demonstrate my knowledge in algorithmic problem-solving and my ability to create efficient and organized code.
You can come around to my Linkedin to say hi :grin: ♥
Make sure your development environment meets the following requirements:
- Download and install the Java JDK (version >=8).
- MacOS, Windows (including WSL), and Linux are supported. Make sure to choose the appropriate version of the Java JDK for your operating system.
Open a command prompt or terminal and navigate to "java" directory and write
javac app.java
In this section, I have implemented a variety of algorithms, including (but not limited to):
- Sorting algorithms: Bubble Sort, Quick Sort, Merge Sort.
- Search algorithms: Binary Search, Depth-First Search, Breadth-First Search.
- Greedy algorithms: Knapsack Problem, Dijkstra's Algorithm.
- Dynamic programming: Fibonacci Sequence, Longest Common Subsequence.
- Each algorithm is accompanied by its theoretical overview and Java code implementation, making it easy to understand and use.
Here, I present the implementation of essential data structures, such as:
- Arrays, Linked Lists, and Stacks.
- Queues and Priority Queues.
- Hash Tables and Binary Trees.
- Graphs and Heaps.
- I provide explanations of the purpose and functionality of each data structure, followed by Java code demonstrating their usage.
Contributions to this project are welcome! If you'd like to add new algorithms, enhance existing code, or improve documentation, please follow the standard GitHub workflow:
- Fork the repository.
- Create a new branch for your contribution.
- Make your changes and commit them.
- Push your changes to your fork.
- Create a pull request describing your changes.
Thank you for visiting my Java Algorithms and Data Structures project! Your feedback and suggestions are greatly appreciated.