# Algorithm **Algorithms** are step-by-step procedures or formulas for solving problems. They form the backbone of computer science, enabling efficient data processing, problem-solving, and decision-making across various applications. Mastering algorithms is essential for optimizing code and understanding the underlying mechanics of software development. <br/> - ## Sorting Algorithms - Bubble Sort - Merge Sort - Quick Sort - ## Search Algorithms <!-- Search algorithms are fundamental for finding elements in data structures and solving optimization problems. They explore possible solutions or paths in an efficient manner. --> - Binary Search<!-- () --> - [Depth-First Search (DFS)](/9I3edilFSFiyV5Ww8PSe8A) - [Breadth-first search (BFS)](/_a00R8RaTKulKV-s7p34-A) - ## Graph Algorithms <!-- Graph algorithms are essential for solving problems related to networks and relationships. They help in exploring the structure of graphs, finding the shortest paths, detecting cycles, and identifying connected components. --> - [Dijkstra's Algorithm](/O6VCgFPvQLKRHBIhsgE5Gw) - [Tarjan's Algorithm (SCC)](/oH5jOy3BSvmq37PGE1KcBg) - Bellman-Ford Algorithm - Floyd-Warshall Algorithm - ## Backtracking - N-Queens Problem - Sudoku Solver - Knapsack Problem - ## Greedy Algorithms - Activity Selection Problem - Huffman Coding - Kruskal’s Algorithm - ## Divide and Conquer - Merge Sort - Quick Sort - Binary Search - ## Dynamic Programming - Knapsack Problem - Longest Common Subsequence - Fibonacci Sequence - ## Miscellaneous - Hashing - Bit Manipulation - Randomized Algorithms
{"description":"Algorithm self-learning note.","title":"Algorithm","contributors":"[{\"id\":\"08ecf684-cada-47c1-ad99-984ab62fb65e\",\"add\":2395,\"del\":698}]","image":"https://hackmd.io/_uploads/HkpX-ZdaC.png"}
Expand menu