Skip to content

Mastering algorithms one step at a time with Java β˜•, Python 🐍, and C++⚑ using Visual Studio Code πŸ’».

License

Notifications You must be signed in to change notification settings

dev-ai-kar/data-structures-algorithms

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

21 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Algorithms Banner

Data Structures & Algorithms πŸš€

Mastering algorithms one step at a time with Java β˜•, Python 🐍, and C++ ⚑ using Visual Studio Code πŸ’».

πŸ“š Overview

This repository is a comprehensive collection of Data Structures and Algorithms implementations, designed for learning and practice. It supports multiple programming languages and includes detailed examples and test cases.

πŸ—‚οΈ Project Structure

data-structures-algorithms/
β”œβ”€β”€ src/               # Source code organized by topics
β”œβ”€β”€ lib/               # External dependencies (including algs4.jar)
β”œβ”€β”€ build/            # Compiled output files
└── data/             # Input data files for examples

πŸ’» Development Setup

Prerequisites

  • Java JDK 11 or higher
  • Python 3.x
  • C++ Compiler (g++)
  • Visual Studio Code
  • Required VS Code Extensions:
    • Java Extension Pack
    • Python
    • C/C++

πŸš€ Running Programs

1. Java Programs

# Compile
javac -cp ".;lib/algs4.jar" src/<path-to-file>/<filename>.java -d build

# Run with interactive input
java -cp ".;build;lib/algs4.jar" <ClassName>

# Run with file input
Get-Content .\data\<inputfile>.txt | java -cp ".;build;lib/algs4.jar" <ClassName>

2. Python Programs

# Run with interactive input
python src/<path-to-file>/<filename>.py

# Run with file input
Get-Content .\data\<inputfile>.txt | python src/<path-to-file>/<filename>.py

3. C++ Programs

# Compile
g++ -o build/<ProgramName> src/<path-to-file>/<filename>.cpp

# Run with interactive input
build\<ProgramName>.exe

# Run with file input
Get-Content .\data\<inputfile>.txt | .\build\<ProgramName>.exe

πŸ“¦ Key Components

Data Structures

  • Arrays & Lists πŸ“Š
  • Trees & Graphs 🌳
  • Hash Tables πŸ—ƒοΈ
  • Stacks & Queues πŸ“š

Algorithms

  • Sorting Algorithms πŸ“ˆ
  • Searching Techniques πŸ”
  • Graph Algorithms πŸ•ΈοΈ
  • Dynamic Programming ⚑

πŸ§ͺ Testing

Each implementation includes:

  • Unit tests
  • Sample input files
  • Performance benchmarks

πŸ“š Learning Path

  1. Fundamentals

    • Basic data structures
    • Time complexity analysis
    • Space complexity analysis
  2. Advanced Topics

    • Complex algorithms
    • Optimization techniques
    • Problem-solving strategies

🀝 Contributing

  1. Fork the repository
  2. Create your feature branch
  3. Commit your changes
  4. Push to the branch
  5. Open a Pull Request

πŸ“Œ Dependencies

The JAVA PROJECTS view in VS Code allows you to manage your dependencies. More details can be found here.

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.


Happy Coding! πŸ’«

About

Mastering algorithms one step at a time with Java β˜•, Python 🐍, and C++⚑ using Visual Studio Code πŸ’».

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published