{"id":262,"date":"2025-03-03T15:14:52","date_gmt":"2025-03-03T13:14:52","guid":{"rendered":"https:\/\/codeblog.xyz\/?p=262"},"modified":"2025-03-03T15:14:52","modified_gmt":"2025-03-03T13:14:52","slug":"30-fundamental-algorithms","status":"publish","type":"post","link":"https:\/\/codeblog.xyz\/?p=262","title":{"rendered":"30 Fundamental Algorithms"},"content":{"rendered":"\n<p><\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1. Sorting Algorithms (Essential for Interviews)<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/bubble-sort-algorithm\/\" title=\"\">Bubble Sort<\/a><\/strong> &#8211; Basic sorting algorithm, inefficient for large data.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/selection-sort-algorithm-2\/\" title=\"\">Selection Sort<\/a><\/strong> &#8211; Selects the smallest element and places it in order.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/insertion-sort-algorithm\/\" title=\"\">Insertion Sort<\/a><\/strong> &#8211; Inserts elements into their correct position.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/merge-sort\/\" title=\"\">Merge Sort<\/a><\/strong> &#8211; Efficient, divide-and-conquer sorting with <strong>O(n log n)<\/strong> complexity.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/quick-sort-algorithm\/\" title=\"\">Quick Sort<\/a><\/strong> &#8211; Fast sorting using partitioning, average <strong>O(n log n)<\/strong> complexity.<\/li>\n\n\n\n<li><a href=\"https:\/\/www.geeksforgeeks.org\/heap-sort\/\" title=\"\"><strong>Heap Sort<\/strong> <\/a>&#8211; Sorting using a heap, used in <strong>priority queues<\/strong>.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/counting-sort\/\" title=\"\">Counting Sort<\/a><\/strong> &#8211; Good for small range of numbers.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/radix-sort\/\" title=\"\">Radix Sort<\/a><\/strong> &#8211; Used for sorting numbers with multiple digits efficiently.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2. Searching Algorithms<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\" start=\"9\">\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/linear-search\/\" title=\"\">Linear Search<\/a><\/strong> &#8211; Basic search, used in unsorted lists.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/binary-search\/\" title=\"\">Binary Search<\/a><\/strong> &#8211; Fast <strong>O(log n)<\/strong> search, works only in <strong>sorted arrays<\/strong>.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/jump-search\/\" title=\"\">Jump Search<\/a><\/strong> &#8211; Faster than binary search for sorted data.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/exponential-search\/\" title=\"\">Exponential Search<\/a><\/strong> &#8211; Good for unbounded lists.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/interpolation-search\/\" title=\"\">Interpolation Search<\/a><\/strong> &#8211; Faster than binary search for uniformly distributed data.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3. Graph Algorithms<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\" start=\"14\">\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/breadth-first-search-or-bfs-for-a-graph\/\" title=\"\">Breadth-First Search (BFS)<\/a><\/strong> &#8211; Traverses level-by-level, used in shortest path problems.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/depth-first-search-or-dfs-for-a-graph\/\" title=\"\">Depth-First Search (DFS)<\/a><\/strong> &#8211; Explores depth before breadth, used in tree\/graph traversal.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/dijkstras-shortest-path-algorithm-greedy-algo-7\/\" title=\"\">Dijkstra\u2019s Algorithm<\/a><\/strong> &#8211; Finds the shortest path from a source node (greedy approach).<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/bellman-ford-algorithm-dp-23\/\" title=\"\">Bellman-Ford Algorithm<\/a><\/strong> &#8211; Shortest path with negative weights.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/floyd-warshall-algorithm-dp-16\/\" title=\"\">Floyd-Warshall Algorithm<\/a><\/strong> &#8211; All-pairs shortest paths.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/kruskals-minimum-spanning-tree-algorithm-greedy-algo-2\/\" title=\"\">Kruskal\u2019s Algorithm<\/a><\/strong> &#8211; Finds <strong>Minimum Spanning Tree (MST)<\/strong> using <strong>greedy approach<\/strong>.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/prims-minimum-spanning-tree-mst-greedy-algo-5\/\" title=\"\">Prim\u2019s Algorithm<\/a><\/strong> &#8211; Another approach for <strong>MST<\/strong>.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/topological-sorting\/\" title=\"\">Topological Sorting<\/a><\/strong> &#8211; Used in <strong>DAGs<\/strong> (Directed Acyclic Graphs) like dependency resolution.<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4. Tree Algorithms<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\" start=\"22\">\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/tree-traversals-inorder-preorder-and-postorder\/\" title=\"\">Binary Tree Traversal (Inorder, Preorder, Postorder, Level Order BFS)<\/a><\/strong><\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/lowest-common-ancestor-binary-tree-set-1\/\" title=\"\">Lowest Common Ancestor (LCA)<\/a><\/strong> &#8211; Finds the common ancestor of two nodes.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/inorder-tree-traversal-without-recursion-and-without-stack\/\" title=\"\">Morris Traversal<\/a><\/strong> &#8211; In-order traversal without recursion or stack.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/trie-insert-and-search\/\" title=\"\">Trie (Prefix Tree)<\/a><\/strong> &#8211; Used for searching strings efficiently (autocomplete systems).<\/li>\n<\/ol>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5. Dynamic Programming &amp; Recursion<\/strong><\/h3>\n\n\n\n<ol class=\"wp-block-list\" start=\"26\">\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/program-for-nth-fibonacci-number\/\" title=\"\">Fibonacci Series (DP &amp; Recursion)<\/a><\/strong> &#8211; Classic problem for understanding memoization.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/difference-between-0-1-knapsack-problem-and-fractional-knapsack-problem\/\" title=\"\">Knapsack Problem (0\/1 Knapsack &amp; Fractional Knapsack)<\/a><\/strong> &#8211; Optimization problem.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/longest-common-subsequence-dp-4\/\" title=\"\">Longest Common Subsequence (LCS)<\/a><\/strong> &#8211; Used in <strong>diff utilities, DNA sequencing<\/strong>.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/coin-change-dp-7\/\" title=\"\">Coin Change Problem<\/a><\/strong> &#8211; Find the minimum number of coins needed for a sum.<\/li>\n\n\n\n<li><strong><a href=\"https:\/\/www.geeksforgeeks.org\/subset-sum-problem-dp-25\/\" title=\"\">Subset Sum Problem<\/a><\/strong> &#8211; Determines if a subset sums to a given value.<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>1. Sorting Algorithms (Essential for Interviews) 2. Searching Algorithms 3. Graph Algorithms 4. Tree Algorithms 5. Dynamic Programming &amp; Recursion<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-262","post","type-post","status-publish","format-standard","hentry","category-blog"],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/codeblog.xyz\/index.php?rest_route=\/wp\/v2\/posts\/262","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/codeblog.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/codeblog.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/codeblog.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/codeblog.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=262"}],"version-history":[{"count":2,"href":"https:\/\/codeblog.xyz\/index.php?rest_route=\/wp\/v2\/posts\/262\/revisions"}],"predecessor-version":[{"id":264,"href":"https:\/\/codeblog.xyz\/index.php?rest_route=\/wp\/v2\/posts\/262\/revisions\/264"}],"wp:attachment":[{"href":"https:\/\/codeblog.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=262"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/codeblog.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=262"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/codeblog.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=262"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}