Skip to content

This GitHub repository hosts a collection of data structures and algorithms implemented in Java, curated and maintained by Dhanushkumar. With an aim to provide a comprehensive resource for Java developers, this repository offers a practical approach to understanding and implementing fundamental data structures and algorithms,

Notifications You must be signed in to change notification settings

dhanushkumar-amk/DATASTRUCTURES-AND-ALGORITHMS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Data Structures and Algorithms (DSA) 🌐🖥

Data Structures and Algorithms (DSA) is a vast field encompassing a wide array of topics. Here is a comprehensive list of topics commonly covered in DSA:

Data Structures

Linear Data Structures

  • Arrays
    • Static and Dynamic Arrays
    • Multidimensional Arrays
  • Linked Lists
    • Singly Linked List
    • Doubly Linked List
    • Circular Linked List
  • Stacks
    • Implementation (Array-based, Linked List-based)
    • Applications
  • Queues
    • Implementation (Array-based, Linked List-based)
    • Circular Queue
    • Priority Queue
    • Deque (Double-ended Queue)

Non-Linear Data Structures

  • Trees
    • Binary Tree
    • Binary Search Tree (BST)
    • AVL Tree
    • Red-Black Tree
    • Splay Tree
    • B-Tree and B+ Tree
    • Trie
    • Segment Tree
    • Fenwick Tree (Binary Indexed Tree)
    • N-ary Tree
  • Heaps
    • Min-Heap
    • Max-Heap
    • Fibonacci Heap
    • Binomial Heap
  • Graphs
    • Directed and Undirected Graphs
    • Weighted and Unweighted Graphs
    • Graph Representations (Adjacency Matrix, Adjacency List)
    • Graph Traversal Algorithms (BFS, DFS)
    • Shortest Path Algorithms (Dijkstra, Bellman-Ford, Floyd-Warshall)
    • Minimum Spanning Tree (Prim's and Kruskal's Algorithms)
    • Topological Sort
    • Strongly Connected Components (Tarjan’s Algorithm, Kosaraju’s Algorithm)

Hashing

  • Hash Tables
  • Hash Functions
  • Collision Resolution Techniques (Chaining, Open Addressing)

Algorithms

Sorting Algorithms

  • Comparison-based Sorting
    • Bubble Sort
    • Selection Sort
    • Insertion Sort
    • Merge Sort
    • Quick Sort
    • Heap Sort
    • Cyclic sort
    • Shell sort
  • Non-Comparison-based Sorting
    • Counting Sort
    • Radial Sort
    • Bucket Sort

Searching Algorithms

  • Linear Search
  • Binary Search
  • Interpolation Search
  • Exponential Search
  • Jump Search

Divide and Conquer Algorithms

  • Merge Sort
  • Quick Sort
  • Binary Search

Dynamic Programming

  • Basic Concepts
  • Fibonacci Series
  • Longest Common Subsequence
  • Longest Increasing Subsequence
  • 0/1 Knapsack Problem
  • Matrix Chain Multiplication
  • Edit Distance
  • Subset Sum Problem

Greedy Algorithms

  • Activity Selection Problem
  • Huffman Coding
  • Knapsack Problem (Fractional)
  • Job Sequencing Problem

Backtracking

  • N-Queens Problem
  • Sudoku Solver
  • Subset Sum Problem
  • Graph Coloring
  • Hamiltonian Cycle
  • Knight’s Tour Problem

Other Algorithms

  • Bit Manipulation
  • Randomized Algorithms
  • String Algorithms
    • String Matching (Naive, KMP, Rabin-Karp, Boyer-Moore)
    • Suffix Trees
    • Trie
  • Number Theory
    • Prime Numbers (Sieve of Eratosthenes)
    • Greatest Common Divisor (GCD)
    • Modular Arithmetic
  • Geometry Algorithms
    • Convex Hull
    • Line Intersection
    • Closest Pair of Points

Advanced Data Structures and Algorithms

  • Disjoint Set (Union-Find)
  • Segment Trees and Fenwick Trees
  • Trie and Suffix Trees
  • KMP Algorithm
  • Aho-Corasick Algorithm

Important Concepts

  • Time Complexity Analysis
  • Space Complexity Analysis
  • Big O, Big Omega, Big Theta Notations
  • Recursion and Iteration
  • Data Structure and Algorithm Design Principles
  • Problem-solving Strategies
  • Trade-offs in Algorithm Design
  • Parallel Algorithms
  • Distributed Algorithms
  • Approximation Algorithms
  • Online Algorithms
  • NP-completeness and P vs NP problem
  • OOPS Concepts
  • Java Collections

Company wise Coding Problems

  • Google
  • Microsoft
  • Facebook
  • Apple
  • Amazon
  • Flipkart
  • Uber
  • Twitter
  • Zoho
  • Tcs
  • Accenture
  • and more...

Add more topics related to DataStructure and Algorithms and also Contribute the code

About

This GitHub repository hosts a collection of data structures and algorithms implemented in Java, curated and maintained by Dhanushkumar. With an aim to provide a comprehensive resource for Java developers, this repository offers a practical approach to understanding and implementing fundamental data structures and algorithms,

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published