Arrays: A fixed-size collection of elements accessed using an index. Linked List: A dynamic data structure where elements are connected via pointers. Stack: A Last-In-First-Out (LIFO) data structure where elements are inserted and removed from the top. Queue: A First-In-First-Out (FIFO) data structure where elements are inserted at the rear and removed from the front. Hash Table: A data structure that maps keys to values using a hash function for efficient lookup. Binary Tree: A tree-like structure where each node can have at most two children. Binary Search Tree: A binary tree where the left child is smaller and the right child is greater than the parent node. Heap: A complete binary tree where each parent node is either greater or smaller than its children. Graph: A collection of nodes (vertices) connected by edges.
Searching Algorithms:
Linear Search: Sequentially checks each element until the target is found. Binary Search: Searches a sorted array by repeatedly dividing the search interval in half. Depth-First Search (DFS): Traverses a graph or tree by exploring as far as possible before backtracking. Sorting Algorithms:
Bubble Sort: Repeatedly compares adjacent elements and swaps them if they are in the wrong order. Selection Sort: Finds the minimum element from the unsorted part and places it at the beginning. Insertion Sort: Builds the final sorted array by repeatedly inserting elements into the proper position. Merge Sort: Divides the array into two halves, sorts them recursively, and then merges them. Quick Sort: Picks a pivot element, partitions the array around the pivot, and recursively sorts the sub-arrays. Heap Sort: Builds a max-heap from the array and repeatedly extracts the maximum element. Recursion: A programming technique where a function calls itself to solve a problem by breaking it into smaller subproblems.
Dynamic Programming: A method for solving complex problems by breaking them down into simpler overlapping subproblems.
Graph Algorithms:
Breadth-First Search (BFS): Traverses a graph or tree level by level. Dijkstra's Algorithm: Finds the shortest path between nodes in a graph with non-negative weights.