{"id":153,"date":"2023-03-02T00:48:20","date_gmt":"2023-03-02T00:48:20","guid":{"rendered":"https:\/\/alitousen.com\/?page_id=153"},"modified":"2025-03-14T14:37:06","modified_gmt":"2025-03-14T14:37:06","slug":"algorithms","status":"publish","type":"page","link":"https:\/\/alitousen.com\/?page_id=153","title":{"rendered":"Algorithms"},"content":{"rendered":"\n<p class=\"has-white-color has-black-background-color has-text-color has-background\">In computer science, an algorithm is a set of steps or instructions that are designed to solve a specific problem or accomplish a particular task. It is essentially a well-defined procedure that can be followed to achieve a specific goal.<\/p>\n\n\n\n<p class=\"has-white-color has-black-background-color has-text-color has-background\">Algorithms can be expressed in various forms, such as natural language, flowcharts, pseudocode, or programming languages. They can be used to perform a wide range of tasks, including sorting data, searching for information, calculating complex mathematical equations, and more.<\/p>\n\n\n\n<p class=\"has-white-color has-black-background-color has-text-color has-background\">The efficiency of an algorithm is measured by its time complexity and space complexity. Time complexity refers to how long an algorithm takes to complete its task, while space complexity refers to how much memory an algorithm requires to execute.<\/p>\n\n\n\n<p class=\"has-white-color has-black-background-color has-text-color has-background\">Algorithms are a crucial part of computer science and are used extensively in programming, software development, and other related fields. They help automate complex tasks and provide solutions to real-world problems, making them an essential tool for developers and computer scientists.<\/p>\n\n\n\n<p class=\"has-white-color has-black-background-color has-text-color has-background\">Linear Search<br>Binary Search<br>Bubble Sort<br>Insertion Sort<br>Selection Sort<br>Quick Sort<br>Merge Sort<br>Heap Sort<br>Counting Sort<br>Radix Sort<br>Bucket Sort<br>Depth-First Search (DFS)<br>Breadth-First Search (BFS)<br>Dijkstra&#8217;s Algorithm<br>Bellman-Ford Algorithm<br>Floyd-Warshall Algorithm<br>Prim&#8217;s Algorithm<br>Kruskal&#8217;s Algorithm<br>Topological Sort<br>Dynamic Programming<br>Knapsack Problem<br>Traveling Salesman Problem (TSP)<br>Convex Hull<br>Maximum Flow<br>Minimum Spanning Tree<\/p>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background\">Linear Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\nusing namespace std;\n\nint linearSearch(int arr[], int n, int key) {\n    for (int i = 0; i &lt; n; i++) {\n        if (arr[i] == key) {\n            return i;\n        }\n    }\n    return -1; \/\/ Key not found\n}\n\nint main() {\n    int arr[] = {10, 20, 30, 40, 50};\n    int n = sizeof(arr) \/ sizeof(arr[0]);\n    int key = 30;\n\n    int index = linearSearch(arr, n, key);\n\n    if (index != -1) {\n        cout &lt;&lt; &quot;Element found at index &quot; &lt;&lt; index &lt;&lt; endl;\n    } else {\n        cout &lt;&lt; &quot;Element not found&quot; &lt;&lt; endl;\n    }\n\n    return 0;\n}\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">linearSearch<\/span><span style=\"color: #F6F6F4\">(int arr[], int n, int key) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n; i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (arr[i] <\/span><span style=\"color: #F286C4\">==<\/span><span style=\"color: #F6F6F4\"> key) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #7B7F8B\">\/\/ Key not found<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int arr[] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">10<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">20<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">30<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">40<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">50<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">sizeof<\/span><span style=\"color: #F6F6F4\">(arr) <\/span><span style=\"color: #F286C4\">\/<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">sizeof<\/span><span style=\"color: #F6F6F4\">(arr[<\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int key <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">30<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int index <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">linearSearch<\/span><span style=\"color: #F6F6F4\">(arr, n, key);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (index <\/span><span style=\"color: #F286C4\">!=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Element found at index <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> index <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    } <\/span><span style=\"color: #F286C4\">else<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Element not found<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background\">Binary Search<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include&lt;iostream&gt;\nusing namespace std;\n\nint binarySearch(int arr[], int left, int right, int target) {\n   while (left &lt;= right) {\n      int mid = left + (right - left) \/ 2;\n      \n      \/\/ If target is at the middle position, return mid\n      if (arr[mid] == target)\n         return mid;\n      \n      \/\/ If target is greater, ignore left half\n      if (arr[mid] &lt; target)\n         left = mid + 1;\n      \n      \/\/ If target is smaller, ignore right half\n      else\n         right = mid - 1;\n   }\n   \n   \/\/ If the target is not found, return -1\n   return -1;\n}\n\nint main() {\n   int arr[] = {2, 5, 8, 12, 16, 23, 38, 56, 72, 91};\n   int target = 23;\n   int n = sizeof(arr) \/ sizeof(arr[0]);\n   int result = binarySearch(arr, 0, n - 1, target);\n   \n   if (result == -1)\n      cout &lt;&lt; &quot;Element not found!&quot;;\n   \n   else\n      cout &lt;&lt; &quot;Element found at index &quot; &lt;&lt; result;\n   \n   return 0;\n}\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">binarySearch<\/span><span style=\"color: #F6F6F4\">(int arr[], int left, int right, int target) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><span style=\"color: #F286C4\">while<\/span><span style=\"color: #F6F6F4\"> (left <\/span><span style=\"color: #F286C4\">&lt;=<\/span><span style=\"color: #F6F6F4\"> right) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      int mid <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> left <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> (right <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> left) <\/span><span style=\"color: #F286C4\">\/<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #7B7F8B\">\/\/ If target is at the middle position, return mid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (arr[mid] <\/span><span style=\"color: #F286C4\">==<\/span><span style=\"color: #F6F6F4\"> target)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">         <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> mid;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #7B7F8B\">\/\/ If target is greater, ignore left half<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (arr[mid] <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> target)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">         left <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> mid <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #7B7F8B\">\/\/ If target is smaller, ignore right half<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #F286C4\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">         right <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> mid <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><span style=\"color: #7B7F8B\">\/\/ If the target is not found, return -1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   int arr[] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">5<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">8<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">16<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">23<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">38<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">56<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">72<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">91<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   int target <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">23<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">sizeof<\/span><span style=\"color: #F6F6F4\">(arr) <\/span><span style=\"color: #F286C4\">\/<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">sizeof<\/span><span style=\"color: #F6F6F4\">(arr[<\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   int result <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">binarySearch<\/span><span style=\"color: #F6F6F4\">(arr, <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">, n <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">, target);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (result <\/span><span style=\"color: #F286C4\">==<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Element not found!<\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><span style=\"color: #F286C4\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Element found at index <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> result;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">   <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background\">Bubble Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\nusing namespace std;\n\nvoid bubbleSort(int array[], int size) {\n  for (int i = 0; i &lt; size - 1; i++) {\n    for (int j = 0; j &lt; size - i - 1; j++) {\n      if (array[j] &gt; array[j + 1]) {\n        \/\/ Swap elements at positions j and j+1\n        int temp = array[j];\n        array[j] = array[j + 1];\n        array[j + 1] = temp;\n      }\n    }\n  }\n}\n\nint main() {\n  int array[] = {64, 34, 25, 12, 22, 11, 90};\n  int size = sizeof(array) \/ sizeof(array[0]);\n\n  cout &lt;&lt; &quot;Before sorting: &quot;;\n  for (int i = 0; i &lt; size; i++) {\n    cout &lt;&lt; array[i] &lt;&lt; &quot; &quot;;\n  }\n\n  bubbleSort(array, size);\n\n  cout &lt;&lt; &quot;\\nAfter sorting: &quot;;\n  for (int i = 0; i &lt; size; i++) {\n    cout &lt;&lt; array[i] &lt;&lt; &quot; &quot;;\n  }\n\n  return 0;\n}\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">bubbleSort<\/span><span style=\"color: #F6F6F4\">(int array[], int size) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> size <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int j <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; j <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> size <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> i <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; j<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (array[j] <\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> array[j <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">]) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Swap elements at positions j and j+1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        int temp <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> array[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        array[j] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> array[j <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        array[j <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> temp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">      }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  int array[] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">64<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">34<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">25<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">22<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">11<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">90<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  int size <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">sizeof<\/span><span style=\"color: #F6F6F4\">(array) <\/span><span style=\"color: #F286C4\">\/<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">sizeof<\/span><span style=\"color: #F6F6F4\">(array[<\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">]);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Before sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> size; i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> array[i] <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  <\/span><span style=\"color: #62E884\">bubbleSort<\/span><span style=\"color: #F6F6F4\">(array, size);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F286C4\">\\n<\/span><span style=\"color: #E7EE98\">After sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> size; i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> array[i] <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">  <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background\">Insertion Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:1.125rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\n#include &lt;vector&gt;\nusing namespace std;\n\nvoid insertionSort(std::vector&lt;int&gt;&amp; arr) {\n    int n = arr.size();\n    for (int i = 1; i &lt; n; i++) {\n        int key = arr[i];\n        int j = i - 1;\n\n        \/\/ Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position\n        while (j &gt;= 0 &amp;&amp; arr[j] &gt; key) {\n            arr[j + 1] = arr[j];\n            j--;\n        }\n        arr[j + 1] = key;\n    }\n}\n\nvoid printArray(const vector&lt;int&gt;&amp; arr) {\n    int n = arr.size();\n    for (int i = 0; i &lt; n; i++)\n        cout &lt;&lt; arr[i] &lt;&lt; &quot; &quot;;\n        cout &lt;&lt; std::endl;\n}\n\nint main() {\n    vector&lt;int&gt; arr = { 12, 11, 13, 5, 6 };\n    cout &lt;&lt; &quot;Original array: &quot;;\n    printArray(arr);\n\n    insertionSort(arr);\n    cout &lt;&lt; &quot;Sorted array: &quot;;\n    printArray(arr);\n\n    return 0;\n}\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">vector<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">insertionSort<\/span><span style=\"color: #F6F6F4\">(std::vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;&amp;<\/span><span style=\"color: #F6F6F4\"> arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr.<\/span><span style=\"color: #62E884\">size<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n; i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        int key <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        int j <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> i <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Move elements of arr[0..i-1], that are greater than key, to one position ahead of their current position<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">while<\/span><span style=\"color: #F6F6F4\"> (j <\/span><span style=\"color: #F286C4\">&gt;=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;&amp;<\/span><span style=\"color: #F6F6F4\"> arr[j] <\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> key) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            arr[j <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            j<\/span><span style=\"color: #F286C4\">--<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        arr[j <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> key;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">printArray<\/span><span style=\"color: #F6F6F4\">(const vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;&amp;<\/span><span style=\"color: #F6F6F4\"> arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr.<\/span><span style=\"color: #62E884\">size<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n; i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> arr[i] <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> std::endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> { <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">11<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">13<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">5<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">6<\/span><span style=\"color: #F6F6F4\"> };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Original array: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">printArray<\/span><span style=\"color: #F6F6F4\">(arr);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">insertionSort<\/span><span style=\"color: #F6F6F4\">(arr);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Sorted array: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">printArray<\/span><span style=\"color: #F6F6F4\">(arr);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background has-link-color wp-elements-5fb31ee062e88164bbe27039366cbbbd\">Selection Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nusing namespace std;\n\nvoid selectionSort(vector&lt;int&gt; &amp;arr) {\n    int n = arr.size();\n    for (int i = 0; i &lt; n - 1; ++i) {\n        int minIndex = i;\n        for (int j = i + 1; j &lt; n; ++j) {\n            if (arr[j] &lt; arr[minIndex]) {\n                minIndex = j;\n            }\n        }\n        if (minIndex != i) {\n            swap(arr[i], arr[minIndex]);\n        }\n    }\n}\n\nint main() {\n    vector&lt;int&gt; arr = {64, 25, 12, 22, 11};\n    cout &lt;&lt; &quot;Array before sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    selectionSort(arr);\n\n    cout &lt;&lt; &quot;Array after sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    return 0;\n}\n\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">vector<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">selectionSort<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr.<\/span><span style=\"color: #62E884\">size<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">i) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        int minIndex <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int j <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> i <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; j <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n; <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">j) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (arr[j] <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> arr[minIndex]) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">                minIndex <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (minIndex <\/span><span style=\"color: #F286C4\">!=<\/span><span style=\"color: #F6F6F4\"> i) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #62E884\">swap<\/span><span style=\"color: #F6F6F4\">(arr[i], arr[minIndex]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">64<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">25<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">22<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">11<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array before sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">selectionSort<\/span><span style=\"color: #F6F6F4\">(arr);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array after sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background has-link-color wp-elements-e5b8580522426dff4bb2cb541c60d9bd\">Quick Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nusing namespace std;\n\n\/\/ Function to partition the array and return the pivot index\nint partition(vector&lt;int&gt; &amp;arr, int low, int high) {\n    int pivot = arr[high]; \/\/ Select the rightmost element as pivot\n    int i = low - 1; \/\/ Index of smaller element\n\n    for (int j = low; j &lt;= high - 1; j++) {\n        \/\/ If current element is smaller than or equal to pivot\n        if (arr[j] &lt;= pivot) {\n            i++; \/\/ Increment index of smaller element\n            swap(arr[i], arr[j]);\n        }\n    }\n    swap(arr[i + 1], arr[high]);\n    return i + 1;\n}\n\n\/\/ Function to perform the quicksort\nvoid quickSort(vector&lt;int&gt; &amp;arr, int low, int high) {\n    if (low &lt; high) {\n        \/\/ Partitioning index\n        int pi = partition(arr, low, high);\n\n        \/\/ Separate recursive calls for left and right partitions\n        quickSort(arr, low, pi - 1);\n        quickSort(arr, pi + 1, high);\n    }\n}\n\nint main() {\n    vector&lt;int&gt; arr = {64, 25, 12, 22, 11};\n    cout &lt;&lt; &quot;Array before sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    int n = arr.size();\n    quickSort(arr, 0, n - 1);\n\n    cout &lt;&lt; &quot;Array after sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    return 0;\n}\n \" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">vector<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">\/\/ Function to partition the array and return the pivot index<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">partition<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr, int low, int high) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int pivot <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr[high]; <\/span><span style=\"color: #7B7F8B\">\/\/ Select the rightmost element as pivot<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> low <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #7B7F8B\">\/\/ Index of smaller element<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int j <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> low; j <\/span><span style=\"color: #F286C4\">&lt;=<\/span><span style=\"color: #F6F6F4\"> high <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; j<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ If current element is smaller than or equal to pivot<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (arr[j] <\/span><span style=\"color: #F286C4\">&lt;=<\/span><span style=\"color: #F6F6F4\"> pivot) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            i<\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #7B7F8B\">\/\/ Increment index of smaller element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #62E884\">swap<\/span><span style=\"color: #F6F6F4\">(arr[i], arr[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">swap<\/span><span style=\"color: #F6F6F4\">(arr[i <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">], arr[high]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> i <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">\/\/ Function to perform the quicksort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">quickSort<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr, int low, int high) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (low <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> high) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Partitioning index<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        int pi <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">partition<\/span><span style=\"color: #F6F6F4\">(arr, low, high);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Separate recursive calls for left and right partitions<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">quickSort<\/span><span style=\"color: #F6F6F4\">(arr, low, pi <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">quickSort<\/span><span style=\"color: #F6F6F4\">(arr, pi <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">, high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">64<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">25<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">22<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">11<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array before sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr.<\/span><span style=\"color: #62E884\">size<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">quickSort<\/span><span style=\"color: #F6F6F4\">(arr, <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">, n <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array after sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\"> <\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background has-link-color wp-elements-953a3dbdab9743d112a440bbc0a160af\">Merge Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nusing namespace std;\n\n\/\/ Function to merge two sorted subarrays into one sorted array\nvoid merge(vector&lt;int&gt; &amp;arr, int left, int mid, int right) {\n    int n1 = mid - left + 1;\n    int n2 = right - mid;\n\n    \/\/ Create temporary arrays\n    vector&lt;int&gt; L(n1), R(n2);\n\n    \/\/ Copy data to temporary arrays L[] and R[]\n    for (int i = 0; i &lt; n1; ++i)\n        L[i] = arr[left + i];\n    for (int j = 0; j &lt; n2; ++j)\n        R[j] = arr[mid + 1 + j];\n\n    \/\/ Merge the temporary arrays back into arr[left..right]\n    int i = 0, j = 0, k = left;\n    while (i &lt; n1 &amp;&amp; j &lt; n2) {\n        if (L[i] &lt;= R[j]) {\n            arr[k] = L[i];\n            ++i;\n        } else {\n            arr[k] = R[j];\n            ++j;\n        }\n        ++k;\n    }\n\n    \/\/ Copy the remaining elements of L[], if any\n    while (i &lt; n1) {\n        arr[k] = L[i];\n        ++i;\n        ++k;\n    }\n\n    \/\/ Copy the remaining elements of R[], if any\n    while (j &lt; n2) {\n        arr[k] = R[j];\n        ++j;\n        ++k;\n    }\n}\n\n\/\/ Function to implement merge sort\nvoid mergeSort(vector&lt;int&gt; &amp;arr, int left, int right) {\n    if (left &lt; right) {\n        int mid = left + (right - left) \/ 2; \/\/ Calculate the middle index\n\n        \/\/ Sort first and second halves\n        mergeSort(arr, left, mid);\n        mergeSort(arr, mid + 1, right);\n\n        \/\/ Merge the sorted halves\n        merge(arr, left, mid, right);\n    }\n}\n\nint main() {\n    vector&lt;int&gt; arr = {64, 25, 12, 22, 11};\n    cout &lt;&lt; &quot;Array before sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    int n = arr.size();\n    mergeSort(arr, 0, n - 1);\n\n    cout &lt;&lt; &quot;Array after sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    return 0;\n}\n\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">vector<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">\/\/ Function to merge two sorted subarrays into one sorted array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">merge<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr, int left, int mid, int right) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n1 <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> mid <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> left <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n2 <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> right <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> mid;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ Create temporary arrays<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">L<\/span><span style=\"color: #F6F6F4\">(n1), <\/span><span style=\"color: #62E884\">R<\/span><span style=\"color: #F6F6F4\">(n2);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ Copy data to temporary arrays L[] and R[]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n1; <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">i)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        L[i] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr[left <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int j <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; j <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n2; <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">j)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        R[j] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr[mid <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> j];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ Merge the temporary arrays back into arr[left..right]<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">, j <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">, k <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> left;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">while<\/span><span style=\"color: #F6F6F4\"> (i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n1 <\/span><span style=\"color: #F286C4\">&amp;&amp;<\/span><span style=\"color: #F6F6F4\"> j <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n2) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (L[i] <\/span><span style=\"color: #F286C4\">&lt;=<\/span><span style=\"color: #F6F6F4\"> R[j]) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            arr[k] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> L[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        } <\/span><span style=\"color: #F286C4\">else<\/span><span style=\"color: #F6F6F4\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            arr[k] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> R[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">            <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ Copy the remaining elements of L[], if any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">while<\/span><span style=\"color: #F6F6F4\"> (i <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n1) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        arr[k] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> L[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ Copy the remaining elements of R[], if any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">while<\/span><span style=\"color: #F6F6F4\"> (j <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n2) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        arr[k] <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> R[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #F286C4\">++<\/span><span style=\"color: #F6F6F4\">k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">\/\/ Function to implement merge sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">mergeSort<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr, int left, int right) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (left <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> right) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        int mid <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> left <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> (right <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> left) <\/span><span style=\"color: #F286C4\">\/<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #7B7F8B\">\/\/ Calculate the middle index<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Sort first and second halves<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">mergeSort<\/span><span style=\"color: #F6F6F4\">(arr, left, mid);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">mergeSort<\/span><span style=\"color: #F6F6F4\">(arr, mid <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">, right);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Merge the sorted halves<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">merge<\/span><span style=\"color: #F6F6F4\">(arr, left, mid, right);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">64<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">25<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">22<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">11<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array before sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr.<\/span><span style=\"color: #62E884\">size<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">mergeSort<\/span><span style=\"color: #F6F6F4\">(arr, <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">, n <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array after sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h2 class=\"wp-block-heading has-pale-cyan-blue-color has-black-background-color has-text-color has-background has-link-color wp-elements-0ba65224d666fc76ad60c72a91401e3f\">Heap Sort<\/h2>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:block;padding:16px 0 0 16px;margin-bottom:-1px;width:100%;text-align:left;background-color:#282A36\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"54\" height=\"14\" viewBox=\"0 0 54 14\"><g fill=\"none\" fill-rule=\"evenodd\" transform=\"translate(1 1)\"><circle cx=\"6\" cy=\"6\" r=\"6\" fill=\"#FF5F56\" stroke=\"#E0443E\" stroke-width=\".5\"><\/circle><circle cx=\"26\" cy=\"6\" r=\"6\" fill=\"#FFBD2E\" stroke=\"#DEA123\" stroke-width=\".5\"><\/circle><circle cx=\"46\" cy=\"6\" r=\"6\" fill=\"#27C93F\" stroke=\"#1AAB29\" stroke-width=\".5\"><\/circle><\/g><\/svg><\/span><span role=\"button\" tabindex=\"0\" data-code=\"#include &lt;iostream&gt;\n#include &lt;vector&gt;\n\nusing namespace std;\n\n\/\/ Function to heapify a subtree rooted at index 'root' in a vector 'arr' of size 'n'\nvoid heapify(vector&lt;int&gt; &amp;arr, int n, int root) {\n    int largest = root; \/\/ Initialize largest as root\n    int left = 2 * root + 1; \/\/ Left child\n    int right = 2 * root + 2; \/\/ Right child\n\n    \/\/ If left child is larger than root\n    if (left &lt; n &amp;&amp; arr[left] &gt; arr[largest])\n        largest = left;\n\n    \/\/ If right child is larger than largest so far\n    if (right &lt; n &amp;&amp; arr[right] &gt; arr[largest])\n        largest = right;\n\n    \/\/ If largest is not root\n    if (largest != root) {\n        swap(arr[root], arr[largest]);\n\n        \/\/ Recursively heapify the affected sub-tree\n        heapify(arr, n, largest);\n    }\n}\n\n\/\/ Function to perform heap sort\nvoid heapSort(vector&lt;int&gt; &amp;arr) {\n    int n = arr.size();\n\n    \/\/ Build heap (rearrange array)\n    for (int i = n \/ 2 - 1; i &gt;= 0; i--)\n        heapify(arr, n, i);\n\n    \/\/ One by one extract an element from heap\n    for (int i = n - 1; i &gt; 0; i--) {\n        \/\/ Move current root to end\n        swap(arr[0], arr[i]);\n\n        \/\/ Call max heapify on the reduced heap\n        heapify(arr, i, 0);\n    }\n}\n\nint main() {\n    vector&lt;int&gt; arr = {64, 25, 12, 22, 11};\n    cout &lt;&lt; &quot;Array before sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    heapSort(arr);\n\n    cout &lt;&lt; &quot;Array after sorting: &quot;;\n    for (int num : arr) {\n        cout &lt;&lt; num &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n\n    return 0;\n}\n\" style=\"color:#f6f6f4;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki dracula-soft\" style=\"background-color: #282A36\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">iostream<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">#include <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">vector<\/span><span style=\"color: #F286C4\">&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">using<\/span><span style=\"color: #F6F6F4\"> namespace std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">\/\/ Function to heapify a subtree rooted at index &#39;root&#39; in a vector &#39;arr&#39; of size &#39;n&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">heapify<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr, int n, int root) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int largest <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> root; <\/span><span style=\"color: #7B7F8B\">\/\/ Initialize largest as root<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int left <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">*<\/span><span style=\"color: #F6F6F4\"> root <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #7B7F8B\">\/\/ Left child<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int right <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">*<\/span><span style=\"color: #F6F6F4\"> root <\/span><span style=\"color: #F286C4\">+<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\">; <\/span><span style=\"color: #7B7F8B\">\/\/ Right child<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ If left child is larger than root<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (left <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n <\/span><span style=\"color: #F286C4\">&amp;&amp;<\/span><span style=\"color: #F6F6F4\"> arr[left] <\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr[largest])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        largest <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> left;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ If right child is larger than largest so far<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (right <\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\"> n <\/span><span style=\"color: #F286C4\">&amp;&amp;<\/span><span style=\"color: #F6F6F4\"> arr[right] <\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr[largest])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        largest <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> right;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ If largest is not root<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">if<\/span><span style=\"color: #F6F6F4\"> (largest <\/span><span style=\"color: #F286C4\">!=<\/span><span style=\"color: #F6F6F4\"> root) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">swap<\/span><span style=\"color: #F6F6F4\">(arr[root], arr[largest]);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Recursively heapify the affected sub-tree<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">heapify<\/span><span style=\"color: #F6F6F4\">(arr, n, largest);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #7B7F8B\">\/\/ Function to perform heap sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F286C4\">void<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #62E884\">heapSort<\/span><span style=\"color: #F6F6F4\">(vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">&amp;<\/span><span style=\"color: #F6F6F4\">arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    int n <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> arr.<\/span><span style=\"color: #62E884\">size<\/span><span style=\"color: #F6F6F4\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ Build heap (rearrange array)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> n <\/span><span style=\"color: #F286C4\">\/<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">2<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&gt;=<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i<\/span><span style=\"color: #F286C4\">--<\/span><span style=\"color: #F6F6F4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">heapify<\/span><span style=\"color: #F6F6F4\">(arr, n, i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #7B7F8B\">\/\/ One by one extract an element from heap<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int i <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> n <\/span><span style=\"color: #F286C4\">-<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">1<\/span><span style=\"color: #F6F6F4\">; i <\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">; i<\/span><span style=\"color: #F286C4\">--<\/span><span style=\"color: #F6F6F4\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Move current root to end<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">swap<\/span><span style=\"color: #F6F6F4\">(arr[<\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">], arr[i]);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #7B7F8B\">\/\/ Call max heapify on the reduced heap<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        <\/span><span style=\"color: #62E884\">heapify<\/span><span style=\"color: #F6F6F4\">(arr, i, <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">int <\/span><span style=\"color: #62E884\">main<\/span><span style=\"color: #F6F6F4\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    vector<\/span><span style=\"color: #F286C4\">&lt;<\/span><span style=\"color: #F6F6F4\">int<\/span><span style=\"color: #F286C4\">&gt;<\/span><span style=\"color: #F6F6F4\"> arr <\/span><span style=\"color: #F286C4\">=<\/span><span style=\"color: #F6F6F4\"> {<\/span><span style=\"color: #BF9EEE\">64<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">25<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">12<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">22<\/span><span style=\"color: #F6F6F4\">, <\/span><span style=\"color: #BF9EEE\">11<\/span><span style=\"color: #F6F6F4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array before sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #62E884\">heapSort<\/span><span style=\"color: #F6F6F4\">(arr);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\">Array after sorting: <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">for<\/span><span style=\"color: #F6F6F4\"> (int num : arr) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">        cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> num <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #E7EE98\"> <\/span><span style=\"color: #DEE492\">&quot;<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    cout <\/span><span style=\"color: #F286C4\">&lt;&lt;<\/span><span style=\"color: #F6F6F4\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">    <\/span><span style=\"color: #F286C4\">return<\/span><span style=\"color: #F6F6F4\"> <\/span><span style=\"color: #BF9EEE\">0<\/span><span style=\"color: #F6F6F4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F6F6F4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n","protected":false},"excerpt":{"rendered":"<p>In computer science, an algorithm is a set of steps or instructions that are designed to solve a specific problem or accomplish a particular task. It is essentially a well-defined procedure that can be followed to achieve a specific goal. Algorithms can be expressed in various forms, such as natural language, flowcharts, pseudocode, or programming [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/alitousen.com\/index.php?rest_route=\/wp\/v2\/pages\/153"}],"collection":[{"href":"https:\/\/alitousen.com\/index.php?rest_route=\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/alitousen.com\/index.php?rest_route=\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/alitousen.com\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/alitousen.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=153"}],"version-history":[{"count":9,"href":"https:\/\/alitousen.com\/index.php?rest_route=\/wp\/v2\/pages\/153\/revisions"}],"predecessor-version":[{"id":301,"href":"https:\/\/alitousen.com\/index.php?rest_route=\/wp\/v2\/pages\/153\/revisions\/301"}],"wp:attachment":[{"href":"https:\/\/alitousen.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=153"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}