{"id":2105,"date":"2024-04-19T10:38:46","date_gmt":"2024-04-19T05:08:46","guid":{"rendered":"https:\/\/moodle.sit.ac.in\/blog\/?p=2105"},"modified":"2024-05-29T17:59:54","modified_gmt":"2024-05-29T12:29:54","slug":"analysis-design-of-algorithms-lab-manual-final-bcdl404","status":"publish","type":"post","link":"https:\/\/moodle.sit.ac.in\/blog\/analysis-design-of-algorithms-lab-manual-final-bcdl404\/","title":{"rendered":"Analysis &amp; Design of Algorithms Lab Manual Final &#8211; BCDL404"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-text-align-center\">Demystifying Algorithms &amp; Solving Problems<\/h4>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"335\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/01\/gnu-gcc-cb-t.png?resize=1024%2C335&#038;ssl=1\" alt=\"\" class=\"wp-image-265 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/335;\" \/><\/figure>\n\n\n\n<p>In this blog post, you will find solutions for the lab component <strong>Analysis &amp; Design of Algorithms Lab (BCDL404)<\/strong> course work for the IV semester of <strong>VTU<\/strong> university. The solutions to the lab component are coded in <strong>C\/C++<\/strong>. We recommend using the <a href=\"https:\/\/www.codeblocks.org\/\" target=\"_blank\" rel=\"noopener\"><strong>Code:Blocks<\/strong><\/a> as the integrated development environment (IDE). You can find the lab syllabus on the university&#8217;s website or click below.&nbsp;<\/p>\n\n\n\n<div data-wp-interactive=\"core\/file\" class=\"wp-block-file\"><object data-wp-bind--hidden=\"!state.hasPdfPreview\" hidden class=\"wp-block-file__embed\" data=\"https:\/\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/05\/BCDL404_Analysis_and_Design_of_Algorithms_Lab.pdf\" type=\"application\/pdf\" style=\"width:100%;height:600px\" aria-label=\"Embed of BCDL404_Analysis_and_Design_of_Algorithms_Lab.\"><\/object><a id=\"wp-block-file--media-251ae033-fea0-4d49-bdc1-d47ab9052463\" href=\"https:\/\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/05\/BCDL404_Analysis_and_Design_of_Algorithms_Lab.pdf\">BCDL404_Analysis_and_Design_of_Algorithms_Lab<\/a><a href=\"https:\/\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/05\/BCDL404_Analysis_and_Design_of_Algorithms_Lab.pdf\" class=\"wp-block-file__button wp-element-button\" download aria-describedby=\"wp-block-file--media-251ae033-fea0-4d49-bdc1-d47ab9052463\">Download<\/a><\/div>\n\n\n\n<p>After getting the necessary development environment setup, Now lets focus on the solutions. Click on the appropriate hyperlink to go to your program of choice.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><a href=\"#P01\"><span style=\"color: #ff0000;\">Kruskal&#8217;s Algorithm<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P02\"><span style=\"color: #ff0000;\">Prim&#8217;s Algorithm<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P03\"><span style=\"color: #ff0000;\">Dynamic Programming<\/span><\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"#P03a\"><span style=\"color: #ff0000;\">Floyd&#8217;s Algorithm<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P03b\"><span style=\"color: #ff0000;\">Warshall&#8217;s Algorithm<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n\n\n\n<li><span style=\"color: #ff0000;\"><a href=\"#P04\" title=\"Dijkstra's Algorithm\">Dijkstra&#8217;s Algorithm<\/a><\/span><\/li>\n\n\n\n<li><span style=\"color: #ff0000;\"><a href=\"#P05\" title=\"Topological Ordering of vertices in a DAG\">Topological Ordering of vertices in a DAG<\/a><\/span><\/li>\n\n\n\n<li><span style=\"color: #ff0000;\"><a href=\"#P06\" title=\"0\/1 Knapsack problem - Dynamic Programming\">0\/1 Knapsack problem &#8211; Dynamic Programming<\/a><\/span><\/li>\n\n\n\n<li><a href=\"#P07\"><span style=\"color: #ff0000;\">Knapsack problem using Greedy method.<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P08\"><span style=\"color: #ff0000;\">Subset Sum Problem<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P09\"><span style=\"color: #ff0000;\">Selection Sort<\/span><\/a><\/li>\n\n\n\n<li><span style=\"color: #ff0000;\"><a href=\"#P10\" title=\"Quick Sort\">Quick Sort<\/a><\/span><\/li>\n\n\n\n<li><span style=\"color: #ff0000;\"><a href=\"#P11\" title=\"Merge Sort \">Merge Sort <\/a><\/span><\/li>\n\n\n\n<li><a href=\"#P12\"><span style=\"color: #ff0000;\">N Queen&#8217;s problem using Backtracking.<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P13\"><span style=\"color: #ff0000;\">Additional solutions<\/span><\/a>\n<ol class=\"wp-block-list\">\n<li><a href=\"#P13a\"><span style=\"color: #ff0000;\">Travelling Sales Person Problem<\/span><\/a><\/li>\n\n\n\n<li><a href=\"#P13b\"><span style=\"color: #ff0000;\">Hamiltonian Cycles<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<figure class=\"wp-block-image size-large\"><img data-recalc-dims=\"1\" decoding=\"async\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/10\/CodingAd.png?ssl=1\" alt=\"\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" class=\"lazyload\" \/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P01\">Program 01<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Kruskal&#8217;s Algorithm<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to find Minimum Cost Spanning Tree of a given connected undirected graph using Kruskal&#8217;s algorithm.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t: 01Kruskal.cpp\n*Description\t: Program to find Minimum Cost Spanning Tree of a given\n*\t\t\tundirected graph using Kruskal's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\nusing namespace std;\nconst int MAXNODES = 10;\nconst int INF = 9999;\n\/\/ Structure to represent an edge\nstruct edge\n{\n\tint u, v, cost;\n};\nint fnFindParent(int v, int parent[]);\nvoid fnUnion_ij(int i, int j, int parent[]);\nvoid fnInputGraph(int m, edge e[]);\nint fnGetMinEdge(edge e[], int n);\nvoid fnKruskal(int n, edge e[], int m);\n\/******************************************************************************\n*Function\t: main\n*Input parameters:\n*\tint argc - no of commamd line arguments\n*\nchar **argv - vector to store command line argumennts\n*RETURNS\t:\t0 on success\n******************************************************************************\/\nint main( int argc, char **argv)\n{\n\tint n = 6, m = 20;\n\tedge e[2*MAXNODES] = {{0,1,6},{1,4,4},{4,5,6},{5,3,2},{3,0,5},{0,2,1},\n\t{1,2,5},{3,2,2},{4,2,6},{5,2,3} };\n\tcout &lt;&lt; &quot;Enter the number of nodes : &quot;;\n\tcin &gt;&gt; n;\n\tcout &lt;&lt; &quot;Enter the number of edges : &quot;;\n\tcin &gt;&gt; m;\n\/\/\tfnInputGraph(m, e);\n\tfnKruskal(n, e, m);\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: fnFindParent\n*Description\t: Function to find parent of a given vertex\n*Input parameters:\n*\tint v - vertex for whom parent has to be found\n*\tint parent[] - parent vector\n*RETURNS\t: parent vertex\n******************************************************************************\/\nint fnFindParent(int v, int parent[])\n{\n\twhile (parent[v] != v)\n\t\tv = parent[v];\n\treturn v;\n}\n\n\/******************************************************************************\n*Function\t: fnUnion_ij\n*Description\t: Function to merge two trees\n*Input parameters:\n*\tint i, j - vertices to be merged\n*\tint parent[] - parent vector\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnUnion_ij(int i, int j, int parent[])\n{\n\tif(i &lt; j)\n\t\tparent[j] = i;\n\telse\n\t\tparent[i] = j;\n}\n\n\/******************************************************************************\n*Function\t: fnInputGraph\n*Description\t: Function to read a graph\n*Input parameters:\n*\tint m - no of edges in the graph\n*\tedge e[] - set of edges in the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnInputGraph(int m, edge e[])\n{\n\tint i, j, k, cost;\n\tfor(k=0; k&lt;m; k++)\n\t{\n\t\tcout &lt;&lt; &quot;Enter edge and cost in the form u, v, w : \\n&quot;;\n\t\tcin &gt;&gt; i &gt;&gt; j &gt;&gt; cost;\n\n\t\te[k].u = i;\n\t\te[k].v = j;\n\t\te[k].cost = cost;\n\t}\n}\n\n\/******************************************************************************\n*Function\t: fnGetMinEdge\n*Description\t: Function to find the least cost edge in the edge set\n*Input parameters:\n*\tedge e[] - set of edges in the graph\n*\tint n - no of vertices in the graph\n*RETURNS\t: index of least cost edge in the edge set\n******************************************************************************\/\nint fnGetMinEdge(edge e[], int n)\n{\n\tint i, small, pos;\n\tsmall = INF;\n\tpos = -1;\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\tif(e[i].cost &lt; small)\n\t\t{\n\t\t\tsmall = e[i].cost;\n\t\t\tpos = i;\n\t\t}\n\t}\n\treturn pos;\n}\n\n\/******************************************************************************\n*Function\t: fnKruskal\n*Description\t: Function to find MST of a graph\n*Input parameters:\n*\tint n - no of vertices in the graph\n*\tint m - no of edges in the graph\n*\tedge e[] - set of edges in the graph\n*RETURNS\t: no value\n******************************************************************************\/\n\nvoid fnKruskal(int n, edge e[], int m)\n{\n\tint i, j, count, k, sum, u, v, t[MAXNODES][2], pos;\n\tint parent[MAXNODES];\n\tcount = 0;\n\tk = 0;\n\tsum = 0;\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\tparent[i] = i;\n\t}\n\twhile(count != n-1)\n\t{\n\t\tpos = fnGetMinEdge(e,m);\n\t\tif(pos == -1)\n\t\t{\n\t\t\tbreak;\n\t\t}\n\t\tu = e[pos].u;\n\t\tv = e[pos].v;\n\t\ti = fnFindParent(u,parent);\n\t\tj = fnFindParent(v,parent);\n\t\tif(i != j)\n\t\t{\n\t\t\tt[k][0] = u;\n\t\t\tt[k][1] = v;\n\t\t\tk++;\n\t\t\tcount++;\n\t\t\tsum += e[pos].cost;\n\t\t\tfnUnion_ij(i, j, parent);\n\t\t}\n\t\te[pos].cost = INF;\n\t}\n\t\n\tif(count == n-1)\n\t{\n\t\tcout &lt;&lt; &quot;\\nSpanning tree exists&quot;;\n\t\tcout &lt;&lt; &quot;\\nThe Spanning tree is shown below\\n&quot;;\n\t\tfor(i=0; i&lt;n-1; i++)\n\t\t\tcout &lt;&lt; t[i][0] &lt;&lt; &quot; &quot; &lt;&lt; t[i][1] &lt;&lt; endl;\n\t\tcout &lt;&lt; &quot;\\nCost of the spanning tree : &quot; &lt;&lt; sum &lt;&lt; endl;\n\t}\n\telse\n\t\tcout &lt;&lt; &quot;\\nThe spanning tree does not exist&quot; &lt;&lt; endl;\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t: 01Kruskal.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to find Minimum Cost Spanning Tree of a given<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\tundirected graph using Kruskal&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAXNODES <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> INF <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ Structure to represent an edge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">edge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> u, v, cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">v<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnUnion_ij<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">i<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">j<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnInputGraph<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #B392F0\">edge<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMinEdge<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">edge<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnKruskal<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #B392F0\">edge<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">char **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">, m <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">20<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tedge e[<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">MAXNODES] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> {{<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">},{<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">} };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of nodes : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of edges : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> m;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/\tfnInputGraph(m, e);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnKruskal<\/span><span style=\"color: #E1E4E8\">(n, e, m);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnFindParent<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find parent of a given vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint v - vertex for whom parent has to be found<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint parent[] - parent vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: parent vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">v<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (parent[v] <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> v)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tv <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> parent[v];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnUnion_ij<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to merge two trees<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint i, j - vertices to be merged<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint parent[] - parent vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnUnion_ij<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">i<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">j<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> j)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tparent[j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tparent[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnInputGraph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to read a graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint m - no of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tedge e[] - set of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnInputGraph<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #B392F0\">edge<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, k, cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(k<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; k<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">m; k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter edge and cost in the form u, v, w : <\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> cost;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\te[k].u <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\te[k].v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\te[k].cost <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnGetMinEdge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find the least cost edge in the edge set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tedge e[] - set of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: index of least cost edge in the edge set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMinEdge<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">edge<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, small, pos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsmall <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tpos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(e[i].cost <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> small)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tsmall <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> e[i].cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tpos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> pos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnKruskal<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find MST of a graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint m - no of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tedge e[] - set of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnKruskal<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #B392F0\">edge<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, count, k, sum, u, v, t[MAXNODES][<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">], pos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> parent[MAXNODES];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcount <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tk <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tparent[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\">(count <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tpos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMinEdge<\/span><span style=\"color: #E1E4E8\">(e,m);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(pos <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tu <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> e[pos].u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tv <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> e[pos].v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(u,parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tj <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(v,parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> j)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tt[k][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tt[k][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tk<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcount<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tsum <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> e[pos].cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">fnUnion_ij<\/span><span style=\"color: #E1E4E8\">(i, j, parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\te[pos].cost <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(count <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Spanning tree exists&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The Spanning tree is shown below<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> t[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> t[i][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Cost of the spanning tree : &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> sum <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The spanning tree does not exist&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t: 01Kruskal.c\n*Description\t: Program to find Minimum Cost Spanning Tree of a given\n*\t\t\tundirected graph using Kruskal's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n\nconst int MAXNODES = 10;\nconst int INF = 9999;\n\/\/ Structure to represent an edge\ntypedef struct \n{\n\tint u, v, cost;\n}edge;\nint fnFindParent(int v, int parent[]);\nvoid fnUnion_ij(int i, int j, int parent[]);\nvoid fnInputGraph(int m, edge e[]);\nint fnGetMinEdge(edge e[], int n);\nvoid fnKruskal(int n, edge e[], int m);\n\/******************************************************************************\n*Function\t: main\n*Input parameters:\n*\tint argc - no of commamd line arguments\n*\nchar **argv - vector to store command line argumennts\n*RETURNS\t:\t0 on success\n******************************************************************************\/\nint main( int argc, char **argv)\n{\n\tint n = 6, m = 20;\n\tedge e[2*MAXNODES];\t\/\/sample graph {{0,1,6},{1,4,4},{4,5,6},{5,3,2},{3,0,5},{0,2,1},{1,2,5},{3,2,2},{4,2,6},{5,2,3} };\n\tprintf(&quot;Enter the number of nodes : &quot;);\n\tscanf(&quot;%d&quot;, &amp;n);\n\tprintf(&quot;Enter the number of edges : &quot;);\n\tscanf(&quot;%d&quot;, &amp;m);\n\tfnInputGraph(m, e);\n\tfnKruskal(n, e, m);\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: fnFindParent\n*Description\t: Function to find parent of a given vertex\n*Input parameters:\n*\tint v - vertex for whom parent has to be found\n*\tint parent[] - parent vector\n*RETURNS\t: parent vertex\n******************************************************************************\/\nint fnFindParent(int v, int parent[])\n{\n\twhile (parent[v] != v)\n\t\tv = parent[v];\n\treturn v;\n}\n\n\/******************************************************************************\n*Function\t: fnUnion_ij\n*Description\t: Function to merge two trees\n*Input parameters:\n*\tint i, j - vertices to be merged\n*\tint parent[] - parent vector\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnUnion_ij(int i, int j, int parent[])\n{\n\tif(i &lt; j)\n\t\tparent[j] = i;\n\telse\n\t\tparent[i] = j;\n}\n\n\/******************************************************************************\n*Function\t: fnInputGraph\n*Description\t: Function to read a graph\n*Input parameters:\n*\tint m - no of edges in the graph\n*\tedge e[] - set of edges in the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnInputGraph(int m, edge e[])\n{\n\tint i, j, k, cost;\n\tfor(k=0; k&lt;m; k++)\n\t{\n\t\tprintf(&quot;Enter edge and cost in the form u, v, w : \\n&quot;);\n\t\tscanf(&quot;%d%d%d&quot;, &amp;i, &amp;j, &amp;cost);\n\n\t\te[k].u = i;\n\t\te[k].v = j;\n\t\te[k].cost = cost;\n\t}\n}\n\n\/******************************************************************************\n*Function\t: fnGetMinEdge\n*Description\t: Function to find the least cost edge in the edge set\n*Input parameters:\n*\tedge e[] - set of edges in the graph\n*\tint n - no of vertices in the graph\n*RETURNS\t: index of least cost edge in the edge set\n******************************************************************************\/\nint fnGetMinEdge(edge e[], int n)\n{\n\tint i, small, pos;\n\tsmall = INF;\n\tpos = -1;\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\tif(e[i].cost &lt; small)\n\t\t{\n\t\t\tsmall = e[i].cost;\n\t\t\tpos = i;\n\t\t}\n\t}\n\treturn pos;\n}\n\n\/******************************************************************************\n*Function\t: fnKruskal\n*Description\t: Function to find MST of a graph\n*Input parameters:\n*\tint n - no of vertices in the graph\n*\tint m - no of edges in the graph\n*\tedge e[] - set of edges in the graph\n*RETURNS\t: no value\n******************************************************************************\/\n\nvoid fnKruskal(int n, edge e[], int m)\n{\n\tint i, j, count, k, sum, u, v, t[MAXNODES][2], pos;\n\tint parent[MAXNODES];\n\tcount = 0;\n\tk = 0;\n\tsum = 0;\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\tparent[i] = i;\n\t}\n\twhile(count != n-1)\n\t{\n\t\tpos = fnGetMinEdge(e,m);\n\t\tif(pos == -1)\n\t\t{\n\t\t\tbreak;\n\t\t}\n\t\tu = e[pos].u;\n\t\tv = e[pos].v;\n\t\ti = fnFindParent(u,parent);\n\t\tj = fnFindParent(v,parent);\n\t\tif(i != j)\n\t\t{\n\t\t\tt[k][0] = u;\n\t\t\tt[k][1] = v;\n\t\t\tk++;\n\t\t\tcount++;\n\t\t\tsum += e[pos].cost;\n\t\t\tfnUnion_ij(i, j, parent);\n\t\t}\n\t\te[pos].cost = INF;\n\t}\n\t\n\tif(count == n-1)\n\t{\n\t\tprintf(&quot;\\nSpanning tree exists&quot;);\n\t\tprintf(&quot;\\nThe Spanning tree is shown below\\n&quot;);\n\t\tfor(i=0; i&lt;n-1; i++)\n\t\t\tprintf(&quot;%d %d\\n&quot;,t[i][0], t[i][1]);\n\t\tprintf(&quot;\\nCost of the spanning tree : %d\\n&quot;, sum);\n\t}\n\telse\n\t\tprintf(&quot;\\nThe spanning tree does not exist\\n&quot;);\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t: 01Kruskal.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to find Minimum Cost Spanning Tree of a given<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\tundirected graph using Kruskal&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAXNODES <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> INF <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ Structure to represent an edge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">typedef<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> u, v, cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}edge;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">v<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnUnion_ij<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">i<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">j<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnInputGraph<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">, edge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMinEdge<\/span><span style=\"color: #E1E4E8\">(edge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnKruskal<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, edge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">char **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">, m <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">20<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tedge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">MAXNODES];<\/span><span style=\"color: #6A737D\">\t\/\/sample graph {{0,1,6},{1,4,4},{4,5,6},{5,3,2},{3,0,5},{0,2,1},{1,2,5},{3,2,2},{4,2,6},{5,2,3} };<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of nodes : &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of edges : &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">m);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnInputGraph<\/span><span style=\"color: #E1E4E8\">(m, e);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnKruskal<\/span><span style=\"color: #E1E4E8\">(n, e, m);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnFindParent<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find parent of a given vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint v - vertex for whom parent has to be found<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint parent[] - parent vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: parent vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">v<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[v] <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> v)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tv <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[v];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnUnion_ij<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to merge two trees<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint i, j - vertices to be merged<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint parent[] - parent vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnUnion_ij<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">i<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">j<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> j)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnInputGraph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to read a graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint m - no of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tedge e[] - set of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnInputGraph<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">, edge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, k, cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(k<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; k<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">m; k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter edge and cost in the form u, v, w : <\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d%d%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">i, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">j, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">cost);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[k].u <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[k].v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[k].cost <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnGetMinEdge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find the least cost edge in the edge set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tedge e[] - set of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: index of least cost edge in the edge set<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMinEdge<\/span><span style=\"color: #E1E4E8\">(edge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, small, pos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsmall <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tpos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[i].cost <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> small)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tsmall <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[i].cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tpos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> pos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnKruskal<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find MST of a graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint m - no of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tedge e[] - set of edges in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnKruskal<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, edge <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">m<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, count, k, sum, u, v, <\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[MAXNODES][<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">], pos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[MAXNODES];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcount <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tk <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">parent<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\">(count <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tpos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMinEdge<\/span><span style=\"color: #E1E4E8\">(e,m);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(pos <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tu <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[pos].u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tv <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[pos].v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(u,parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tj <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindParent<\/span><span style=\"color: #E1E4E8\">(v,parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> j)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[k][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[k][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tk<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcount<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tsum <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[pos].cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">fnUnion_ij<\/span><span style=\"color: #E1E4E8\">(i, j, parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">e<\/span><span style=\"color: #E1E4E8\">[pos].cost <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(count <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Spanning tree exists&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The Spanning tree is shown below<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\"> <\/span><span style=\"color: #79B8FF\">%d\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">], <\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[i][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Cost of the spanning tree : <\/span><span style=\"color: #79B8FF\">%d\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, sum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The spanning tree does not exist<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graph<\/h4>\n\n\n\n<p>For this program lets consider the following graph<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-658 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal-1.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"Enter the number of nodes : 6\nEnter the number of edges : 10\nEnter edge and cost in the form u, v, w : \n0 1 6\nEnter edge and cost in the form u, v, w : \n1 4 4\nEnter edge and cost in the form u, v, w : \n4 5 6\nEnter edge and cost in the form u, v, w : \n5 3 2\nEnter edge and cost in the form u, v, w : \n3 0 5\nEnter edge and cost in the form u, v, w : \n0 2 1\nEnter edge and cost in the form u, v, w : \n1 2 5\nEnter edge and cost in the form u, v, w : \n3 2 2\nEnter edge and cost in the form u, v, w : \n4 2 6\nEnter edge and cost in the form u, v, w : \n5 2 3\nSpanning tree exists\nThe Spanning tree is shown below\n0 2\n5 3\n3 2\n1 4\n1 2\nCost of the spanning tree : 14\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">nodes<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">edges<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter edge and cost <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the form u, v, <\/span><span style=\"color: #B392F0\">w<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Spanning tree exists<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The Spanning tree is shown below<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Cost <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> the spanning <\/span><span style=\"color: #B392F0\">tree<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">14<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Spanning Tree of the graph<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-659 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Kruskal2.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P02\">Program 02<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Prim&#8217;s Algorithm<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to find Minimum Cost Spanning Tree of a given connected undirected graph using Prim&#8217;s algorithm.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t: 02PrimMST.cpp\n*Description: Program to find Minimum Cost Spanning Tree of a given\n*\tundirected graph using Prim's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\nusing namespace std;\nconst int MAXNODES = 10;\nvoid fnPrims(int n, int cost[MAXNODES][MAXNODES]);\nvoid fnGetMatrix(int n,int a[MAXNODES][MAXNODES]);\n\/******************************************************************************\t\n*Function\t: main\n*Input parameters:\n*\tint argc - no of commamd line arguments\n*\tchar **argv - vector to store command line argumennts\n*RETURNS\t: 0 on success\n******************************************************************************\/\nint main( int argc, char **argv)\n{\n\tint a[MAXNODES][MAXNODES] = {\n\t{0, 3, 9999, 7, 9},\t{3, 0, 4, 2, 9999},\t{9999, 4, 0, 5, 6},\n\t{7, 2, 5, 0, 4},\t{9, 9999, 6, 4, 0}};\n\tint n = 5;\n\tcout &lt;&lt; &quot;Enter the number of vertices : &quot;;\n\tcin &gt;&gt; n;\n\tfnGetMatrix(n,a);\n\tfnPrims(n,a);\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: fnPrims\n*Description\t: Function to find Minimum Cost Spanning Tree of a given\n*\tundirected graph using Prims algorithm.\n*Input parameters:\n*\tint n - no of vertices in the graph\n*\tint cost[][] - cost adjacency matrix of the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnPrims(int n, int cost[MAXNODES][MAXNODES])\n{\n\tint i, j, u, v, min;\n\tint sum, k, t[MAXNODES][2], p[MAXNODES], d[MAXNODES], s[MAXNODES];\n\tint source, count;\n\tmin = 9999;\n\tsource = 0;\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\tfor(j=0; j&lt;n; j++)\n\t\t{\n\t\t\tif(cost[i][j] != 0 &amp;&amp; cost[i][j] &lt;= min)\n\t\t\t{\n\t\t\t\tmin = cost[i][j];\n\t\t\t\tsource = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\td[i] = cost[source][i];\n\t\ts[i] = 0;\n\t\tp[i] = source;\n\t}\n\ts[source] = 1;\n\tsum = 0;\n\tk = 0;\n\tcount = 0;\n\twhile (count != n-1)\n\t{\n\t\tmin = 9999;\n\t\tu = -1;\n\t\tfor(j=0; j&lt;n; j++)\n\t\t{\n\t\t\tif(s[j] == 0)\n\t\t\t{\n\t\t\t\tif(d[j] &lt;= min)\n\t\t\t\t{\n\t\t\t\t\tmin = d[j];\n\t\t\t\t\tu = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tt[k][0] = u;\n\t\tt[k][1] = p[u];\n\t\tk++;\n\t\tcount++;\n\t\tsum += cost[u][p[u]];\n\t\ts[u] = 1;\n\t\tfor(v=0; v&lt;n; v++)\n\t\t{\n\t\t\tif(s[v]==0 &amp;&amp; cost[u][v]&lt;d[v])\n\t\t\t{\n\t\t\t\td[v] = cost[u][v];\n\t\t\t\tp[v] = u;\n\t\t\t}\n\t\t}\n\t}\n\tif(sum &gt;= 9999)\n\tcout &lt;&lt; &quot;nSpanning tree does not existn&quot;;\n\telse\n\t{\n\tcout &lt;&lt; &quot;nThe spanning tree exists and minimum cost spanning tree is n&quot;;\n\tfor(i=0; i&lt;k; i++)\n\tcout &lt;&lt; t[i][1] &lt;&lt; &quot; &quot; &lt;&lt; t[i][0] &lt;&lt; endl;\n\tcout &lt;&lt; &quot;nThe cost of the minimum cost spanning tree is &quot; &lt;&lt; sum &lt;&lt; endl;\n\t}\n}\n\/******************************************************************************\n*Function : fnGetMatrix\n*Description : Function to read cost adjacency matrix of the graph\n*Input parameters:\n*\tint n - no of vertices in the graph\n*\tint a[][] - cost adjacency matrix of the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnGetMatrix(int n,int a[MAXNODES][MAXNODES])\n{\n\tint i, j;\n\tcout &lt;&lt; &quot;Enter the Cost Adjacency Matrix&quot; &lt;&lt; endl;\n\tfor(i=0; i&lt;n; i++)\n\t\tfor(j=0; j&lt;n; j++)\n\t\t\tcin &gt;&gt; a[i][j];\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 02PrimMST.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find Minimum Cost Spanning Tree of a given<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tundirected graph using Prim&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAXNODES <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tchar **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: 0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> a[MAXNODES][MAXNODES] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">},\t{<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">},\t{<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">},<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">},\t{<\/span><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">}};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of vertices : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(n,a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(n,a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnPrims<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find Minimum Cost Spanning Tree of a given<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tundirected graph using Prims algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint cost[][] - cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, u, v, min;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> sum, k, t[MAXNODES][<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">], p[MAXNODES], d[MAXNODES], s[MAXNODES];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> source, count;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsource <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(cost[i][j] <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> cost[i][j] <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tsource <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\td[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[source][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ts[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tp[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> source;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ts[source] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tk <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcount <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (count <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tu <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(s[j] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(d[j] <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> d[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tu <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tt[k][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tt[k][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> p[u];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tk<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcount<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tsum <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> cost[u][p[u]];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ts[u] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(v<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; v<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; v<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(s[v]<\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> cost[u][v]<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">d[v])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\td[v] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[u][v];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tp[v] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(sum <\/span><span style=\"color: #F97583\">&gt;=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Spanning tree does not exist<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">The spanning tree exists and minimum cost spanning tree is <\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">k; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> t[i][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> t[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">The cost of the minimum cost spanning tree is &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> sum <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function : fnGetMatrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description : Function to read cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint a[][] - cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the Cost Adjacency Matrix&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> a[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t: 02PrimMST.c\n*Description: Program to find Minimum Cost Spanning Tree of a given\n*\tundirected graph using Prim's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n\nconst int MAXNODES = 10;\nvoid fnPrims(int n, int cost[MAXNODES][MAXNODES]);\nvoid fnGetMatrix(int n,int a[MAXNODES][MAXNODES]);\n\/******************************************************************************\t\n*Function\t: main\n*Input parameters:\n*\tint argc - no of commamd line arguments\n*\tchar **argv - vector to store command line argumennts\n*RETURNS\t: 0 on success\n******************************************************************************\/\nint main( int argc, char **argv)\n{\n\tint a[MAXNODES][MAXNODES];\/\/ sample graph = {{0, 3, 9999, 7, 9},\t{3, 0, 4, 2, 9999},\t{9999, 4, 0, 5, 6}, {7, 2, 5, 0, 4},\t{9, 9999, 6, 4, 0}};\n\tint n = 5;\n\tprintf(&quot;Enter the number of vertices : &quot;);\n\tscanf(&quot;%d&quot;, &amp;n);\n\tfnGetMatrix(n,a);\n\tfnPrims(n,a);\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: fnPrims\n*Description\t: Function to find Minimum Cost Spanning Tree of a given\n*\tundirected graph using Prims algorithm.\n*Input parameters:\n*\tint n - no of vertices in the graph\n*\tint cost[][] - cost adjacency matrix of the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnPrims(int n, int cost[MAXNODES][MAXNODES])\n{\n\tint i, j, u, v, min;\n\tint sum, k, t[MAXNODES][2], p[MAXNODES], d[MAXNODES], s[MAXNODES];\n\tint source, count;\n\n\tmin = 9999;\n\tsource = 0;\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\tfor(j=0; j&lt;n; j++)\n\t\t{\n\t\t\tif(cost[i][j] != 0 &amp;&amp; cost[i][j] &lt;= min)\n\t\t\t{\n\t\t\t\tmin = cost[i][j];\n\t\t\t\tsource = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i&lt;n; i++)\n\t{\n\t\td[i] = cost[source][i];\n\t\ts[i] = 0;\n\t\tp[i] = source;\n\t}\n\ts[source] = 1;\n\tsum = 0;\n\tk = 0;\n\tcount = 0;\n\twhile (count != n-1)\n\t{\n\t\tmin = 9999;\n\t\tu = -1;\n\t\tfor(j=0; j&lt;n; j++)\n\t\t{\n\t\t\tif(s[j] == 0)\n\t\t\t{\n\t\t\t\tif(d[j] &lt;= min)\n\t\t\t\t{\n\t\t\t\t\tmin = d[j];\n\t\t\t\t\tu = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tt[k][0] = u;\n\t\tt[k][1] = p[u];\n\t\tk++;\n\t\tcount++;\n\t\tsum += cost[u][p[u]];\n\t\ts[u] = 1;\n\t\tfor(v=0; v&lt;n; v++)\n\t\t{\n\t\t\tif(s[v]==0 &amp;&amp; cost[u][v]&lt;d[v])\n\t\t\t{\n\t\t\t\td[v] = cost[u][v];\n\t\t\t\tp[v] = u;\n\t\t\t}\n\t\t}\n\t}\n\tif(sum &gt;= 9999)\n\tprintf(&quot;\\nSpanning tree does not exist\\n&quot;);\n\telse\n\t{\n\tprintf(&quot;\\nThe spanning tree exists and minimum cost spanning tree is \\n&quot;);\n\tfor(i=0; i&lt;k; i++)\n\t\tprintf(&quot;%d %d\\n&quot;,t[i][1], t[i][0]);\n\tprintf(&quot;\\nThe cost of the minimum cost spanning tree is %d\\n&quot;, sum);\n\t}\n}\n\n\/******************************************************************************\n*Function : fnGetMatrix\n*Description : Function to read cost adjacency matrix of the graph\n*Input parameters:\n*\tint n - no of vertices in the graph\n*\tint a[][] - cost adjacency matrix of the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnGetMatrix(int n,int a[MAXNODES][MAXNODES])\n{\n\tint i, j;\n\tprintf(&quot;Enter the Cost Adjacency Matrix\\n&quot;);\n\tfor(i=0; i&lt;n; i++)\n\t\tfor(j=0; j&lt;n; j++)\n\t\t\tscanf(&quot;%d&quot;, &amp;a[i][j]);\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 02PrimMST.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find Minimum Cost Spanning Tree of a given<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tundirected graph using Prim&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAXNODES <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tchar **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: 0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES];<\/span><span style=\"color: #6A737D\">\/\/ sample graph = {{0, 3, 9999, 7, 9},\t{3, 0, 4, 2, 9999},\t{9999, 4, 0, 5, 6}, {7, 2, 5, 0, 4},\t{9, 9999, 6, 4, 0}};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of vertices : &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(n,a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(n,a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnPrims<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find Minimum Cost Spanning Tree of a given<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tundirected graph using Prims algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint cost[][] - cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, u, v, min;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> sum, k, <\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[MAXNODES][<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">], <\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[MAXNODES];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> source, count;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsource <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[i][j] <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[i][j] <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tsource <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[source][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> source;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[source] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tsum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tk <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcount <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (count <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> n<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tu <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[j] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[j] <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tu <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[k][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[k][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[u];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tk<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcount<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tsum <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[u][<\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[u]];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[u] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(v<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; v<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; v<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[v]<\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[u][v]<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[v])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[v] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[u][v];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[v] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(sum <\/span><span style=\"color: #F97583\">&gt;=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Spanning tree does not exist<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The spanning tree exists and minimum cost spanning tree is <\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">k; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\"> <\/span><span style=\"color: #79B8FF\">%d\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[i][<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">], <\/span><span style=\"color: #FFAB70\">t<\/span><span style=\"color: #E1E4E8\">[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The cost of the minimum cost spanning tree is <\/span><span style=\"color: #79B8FF\">%d\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, sum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function : fnGetMatrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description : Function to read cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint a[][] - cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the Cost Adjacency Matrix<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graph<\/h4>\n\n\n\n<p>For this program lets consider the following graph<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-660 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"Enter the number of vertices : 5\nEnter the Cost Adjacency Matrix\n0 3 9999 7 9\n3 0 4 2 9999\n9999 4 0 5 6\n7 2 5 0 4\n9 9999 6 4 0\nThe spanning tree exists and minimum cost spanning tree is \n3 1\n1 0\n3 4\n1 2\nThe cost of the minimum cost spanning tree is 13\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">vertices<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the Cost Adjacency Matrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The spanning tree exists and minimum cost spanning tree is <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The cost <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> the minimum cost spanning tree is <\/span><span style=\"color: #79B8FF\">13<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Spanning Tree of the graph<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-661 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim02.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P03\">Program 03<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"P03a\">Floyd&#8217;s Algorithm<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to solve All-Pairs Shortest Paths problem using Floyd&#8217;s algorithm.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/***************************************************************************\n*File\t\t: 03AFloyd.cpp\n*Description: Program to implement Floyd's Algorithm\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n***************************************************************************\/\n#include &lt;iostream&gt;\nusing namespace std;\n\/******************************************************************************\n*Function\t: \tmain\n*Input parameters: no parameters\n*RETURNS\t:\t0 on success\n******************************************************************************\/\nint main(void)\n{\n\tint iN, i, j, k;\n\tint iaFloyd[10][10], iaCost[10][10];\n\tcout &lt;&lt; &quot;n*********************************************************&quot;;\n\tcout &lt;&lt; &quot;n*tPROGRAM TO IMPLEMENT FLOYD'S ALGORITHMt*n&quot;;\n\tcout &lt;&lt; &quot;*********************************************************&quot;;\n\tcout &lt;&lt; &quot;nEnter the number of verticesn&quot;;\n\tcin &gt;&gt; iN;\n\tcout &lt;&lt; &quot;nEnter the Cost adjacency Matrixn&quot;;\n\tfor(i=0;i&lt;iN;i++)\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t\tcin &gt;&gt; iaCost[i][j];\n\tcout &lt;&lt; &quot;nInput Graphn&quot;;\n\tfor(i=0;i&lt;iN;i++)\n\t{\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t{\n\t\t\tcout &lt;&lt; iaCost[i][j] &lt;&lt; &quot;t&quot;;\n\t\t}\n\t\tcout &lt;&lt; endl;\n\t}\n\tcout &lt;&lt; endl;\n\tfor(i=0;i&lt;iN;i++)\n\t{\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t{\n\t\t\tiaFloyd[i][j] = iaCost[i][j];\n\t\t}\n\t}\n\tfor(k=0;k&lt;iN;k++)\n\t{\n\t\tfor(i=0;i&lt;iN;i++)\n\t\t{\n\t\t\tfor(j=0;j&lt;iN;j++)\n\t\t\t{\n\t\t\t\tif(iaFloyd[i][j] &gt; (iaFloyd[i][k] + iaFloyd[k][j]))\n\t\t\t\t\tiaFloyd[i][j] = (iaFloyd[i][k] + iaFloyd[k][j]);\n\t\t\t}\n\t\t}\n\t}\n\tcout &lt;&lt; &quot;nAll Pair Shortest Path Matrixn&quot;;\n\tfor(i=0;i&lt;iN;i++)\n\t{\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t{\n\t\t\tcout &lt;&lt; iaFloyd[i][j] &lt;&lt; &quot;t&quot;;\n\t\t}\n\t\tcout &lt;&lt; endl;\n\t}\n\tcout &lt;&lt; &quot;n&quot;;\n\treturn 0;\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/***************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 03AFloyd.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to implement Floyd&#39;s Algorithm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">***************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iostream<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">namespace<\/span><span style=\"color: #E1E4E8\"> std;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: \tmain<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint iN, i, j, k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint iaFloyd[<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">], iaCost[<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">*********************************************************&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">*<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">PROGRAM TO IMPLEMENT FLOYD&#39;S ALGORITHM<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">*<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;*********************************************************&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the number of vertices<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iN;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the Cost adjacency Matrix<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iaCost[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Input Graph<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> iaCost[i][j] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tiaFloyd[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> iaCost[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(k<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;k<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(iaFloyd[i][j] <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\"> (iaFloyd[i][k] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> iaFloyd[k][j]))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tiaFloyd[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> (iaFloyd[i][k] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> iaFloyd[k][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">All Pair Shortest Path Matrix<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> iaFloyd[i][j] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/***************************************************************************\n*File\t\t: 03AFloyd.c\n*Description: Program to implement Floyd's Algorithm\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n***************************************************************************\/\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n\/******************************************************************************\n*Function\t: \tmain\n*Input parameters: no parameters\n*RETURNS\t:\t0 on success\n******************************************************************************\/\nint main(void)\n{\n\tint iN, i, j, k;\n\tint iaFloyd[10][10], iaCost[10][10];\n\tprintf(&quot;n*********************************************************&quot;);\n\tprintf(&quot;n*tPROGRAM TO IMPLEMENT FLOYD'S ALGORITHMt*n&quot;);\n\tprintf(&quot;*********************************************************&quot;);\n\tprintf(&quot;nEnter the number of verticesn&quot;);\n\tscanf(&quot;%d&quot;,&amp;iN);\n\tprintf(&quot;nEnter the Cost adjacency Matrixn&quot;);\n\tfor(i=0;i&lt;iN;i++)\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t\tscanf(&quot;%d&quot;,&amp;iaCost[i][j]);\n\tprintf(&quot;nInput Graphn&quot;);\n\tfor(i=0;i&lt;iN;i++)\n\t{\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t{\n\t\t\tprintf(&quot;%dt&quot;,iaCost[i][j]);\n\t\t}\n\t\tprintf(&quot;n&quot;);\n\t}\n\tprintf(&quot;n&quot;);\n\tfor(i=0;i&lt;iN;i++)\n\t{\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t{\n\t\t\tiaFloyd[i][j] = iaCost[i][j];\n\t\t}\n\t}\n\tfor(k=0;k&lt;iN;k++)\n\t{\n\t\tfor(i=0;i&lt;iN;i++)\n\t\t{\n\t\t\tfor(j=0;j&lt;iN;j++)\n\t\t\t{\n\t\t\t\tif(iaFloyd[i][j] &gt; (iaFloyd[i][k] + iaFloyd[k][j]))\n\t\t\t\t\tiaFloyd[i][j] = (iaFloyd[i][k] + iaFloyd[k][j]);\n\t\t\t}\n\t\t}\n\t}\n\tprintf(&quot;nAll Pair Shortest Path Matrixn&quot;);\n\tfor(i=0;i&lt;iN;i++)\n\t{\n\t\tfor(j=0;j&lt;iN;j++)\n\t\t{\n\t\t\tprintf(&quot;%dt&quot;,iaFloyd[i][j]);\n\t\t}\n\t\tprintf(&quot;n&quot;);\n\t}\n\tprintf(&quot;n&quot;);\n\treturn 0;\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/***************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 03AFloyd.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to implement Floyd&#39;s Algorithm<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">***************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">stdio.h<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">stdlib.h<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: \tmain<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iN, i, j, k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iaFloyd[<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">], iaCost[<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">*********************************************************&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">*<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">PROGRAM TO IMPLEMENT FLOYD&#39;S ALGORITHM<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">*<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;*********************************************************&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the number of vertices<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">iN);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the Cost adjacency Matrix<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">iaCost[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Input Graph<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,iaCost[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tiaFloyd[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> iaCost[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(k<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;k<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(iaFloyd[i][j] <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\"> (iaFloyd[i][k] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> iaFloyd[k][j]))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tiaFloyd[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> (iaFloyd[i][k] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> iaFloyd[k][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">All Pair Shortest Path Matrix<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iN;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,iaFloyd[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graph<\/h4>\n\n\n\n<p>For this program lets consider the following graph<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-662 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Prim01-1.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"*********************************************************\n*\tPROGRAM TO IMPLEMENT FLOYD'S ALGORITHM\t*\n*********************************************************\nEnter the number of vertices\n5\nEnter the Cost adjacency Matrix\n0 3 9999 7 9\n3 0 4 2 9999\n9999 4 0 5 6\n7 2 5 0 4\n9 9999 6 4 0\nInput Graph\n0\t3\t9999\t7\t9\t\n3\t0\t4\t2\t9999\t\n9999\t4\t0\t5\t6\t\n7\t2\t5\t0\t4\t\n9\t9999\t6\t4\t0\t\nAll Pair Shortest Path Matrix\n0\t3\t7\t5\t9\t\n3\t0\t4\t2\t6\t\n7\t4\t0\t5\t6\t\n5\t2\t5\t0\t4\t\n9\t6\t6\t4\t0\t\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">*********************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">PROGRAM<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">TO<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">IMPLEMENT<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">FLOYD<\/span><span style=\"color: #9ECBFF\">&#39;S ALGORITHM\t<\/span><span style=\"color: #FDAEB7; font-style: italic\">*<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">*********************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> vertices<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the Cost adjacency Matrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Input Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">All Pair Shortest Path Matrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"P03b\">Warshall&#8217;s Algorithm<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to find the transitive closure using Warshal&#8217;s algorithm.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t: 03BWarshall.cpp\n*Description: Program to find transitive closure of a given directed\n*\t\t\t\t\tgraph using Warshall's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\nusing namespace std;\nconst int MAX = 100;\nvoid WarshallTransitiveClosure(int graph[MAX][MAX], int numVert);\n\/******************************************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t: 0 on success\n******************************************************************************\/\nint main(void)\n{\n\tint i, j, numVert;\n\tint graph[MAX][MAX];\n\tcout &lt;&lt; &quot;Warshall's Transitive Closure&quot; &lt;&lt; endl;\n\tcout &lt;&lt; &quot;Enter the number of vertices : &quot; ;\n\tscanf(&quot;%d&quot;,&amp;numVert);\n\tcout &lt;&lt; &quot;Enter the adjacency matrix :-&quot; &lt;&lt; endl;\n\tfor (i=0; i&lt;numVert; i++)\n\t\tfor (j=0; j&lt;numVert; j++)\n\t\t\tscanf(&quot;%d&quot;,&amp;graph[i][j]);\n\tWarshallTransitiveClosure(graph, numVert);\n\tcout &lt;&lt; &quot;nThe transitive closure for the given graph is :-&quot; &lt;&lt; endl;\n\tfor (i=0; i&lt;numVert; i++)\n\t{\n\t\tfor (j=0; j&lt;numVert; j++)\n\t\t{\n\t\t\tcout &lt;&lt; graph[i][j] &lt;&lt; &quot;t&quot;;\n\t\t}\n\t\tcout &lt;&lt; &quot;&quot; &lt;&lt; endl;\n\t}\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: WarshallTransitiveClosure\n*Description\t: Function to transitive closure of a given directed\n*\t\t\t\t\tgraph using Warshall's algorithm.\n*Input parameters:\n*\tint graph[MAX][MAX] - adjacency matrix of the input graph\n*\tint numVert - no of vertices in the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid WarshallTransitiveClosure(int graph[MAX][MAX], int numVert)\n{\n\tint i,j,k;\n\tfor (k=0; k&lt;numVert; k++)\n\t{\n\t\tfor (i=0; i&lt;numVert; i++)\n\t\t{\n\t\t\tfor (j=0; j&lt;numVert; j++)\n\t\t\t{\n\t\t\t\tif (graph[i][j] || (graph[i][k] &amp;&amp; graph[k][j]))\n\t\t\t\t\tgraph[i][j] = 1;\n\t\t\t}\n\t\t}\n\t}\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 03BWarshall.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find transitive closure of a given directed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\t\t\tgraph using Warshall&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iostream<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">namespace<\/span><span style=\"color: #E1E4E8\"> std;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">int<\/span><span style=\"color: #E1E4E8\"> MAX <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">WarshallTransitiveClosure<\/span><span style=\"color: #E1E4E8\">(int graph[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">], int numVert);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: 0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i, j, numVert;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint graph[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Warshall&#39;s Transitive Closure&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of vertices : &quot;<\/span><span style=\"color: #E1E4E8\"> ;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">numVert);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the adjacency matrix :-&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">graph[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">WarshallTransitiveClosure<\/span><span style=\"color: #E1E4E8\">(graph, numVert);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">The transitive closure for the given graph is :-&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> graph[i][j] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: WarshallTransitiveClosure<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to transitive closure of a given directed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\t\t\tgraph using Warshall&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint graph[MAX][MAX] - adjacency matrix of the input graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint numVert - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">WarshallTransitiveClosure<\/span><span style=\"color: #E1E4E8\">(int graph[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">], int numVert)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i,j,k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (k<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; k<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (graph[i][j] <\/span><span style=\"color: #F97583\">||<\/span><span style=\"color: #E1E4E8\"> (graph[i][k] <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> graph[k][j]))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tgraph[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t: 03BWarshall.c\n*Description: Program to find transitive closure of a given directed\n*\t\t\t\t\tgraph using Warshall's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;stdio.h&gt;\nconst int MAX = 100;\nvoid WarshallTransitiveClosure(int graph[MAX][MAX], int numVert);\n\/******************************************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t: 0 on success\n******************************************************************************\/\nint main(void)\n{\n\tint i, j, numVert;\n\tint graph[MAX][MAX];\n\tprintf(&quot;Warshall's Transitive Closuren&quot;);\n\tprintf(&quot;Enter the number of vertices : &quot;);\n\tscanf(&quot;%d&quot;,&amp;numVert);\n\tprintf(&quot;Enter the adjacency matrix :-n&quot;);\n\tfor (i=0; i&lt;numVert; i++)\n\t\tfor (j=0; j&lt;numVert; j++)\n\t\t\tscanf(&quot;%d&quot;,&amp;graph[i][j]);\n\tWarshallTransitiveClosure(graph, numVert);\n\tprintf(&quot;nThe transitive closure for the given graph is :-n&quot;);\n\tfor (i=0; i&lt;numVert; i++)\n\t{\n\t\tfor (j=0; j&lt;numVert; j++)\n\t\t{\n\t\t\tprintf(&quot;%dt&quot;,graph[i][j]);\n\t\t}\n\t\tprintf(&quot;n&quot;);\n\t}\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: WarshallTransitiveClosure\n*Description\t: Function to transitive closure of a given directed\n*\t\t\t\t\tgraph using Warshall's algorithm.\n*Input parameters:\n*\tint graph[MAX][MAX] - adjacency matrix of the input graph\n*\tint numVert - no of vertices in the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid WarshallTransitiveClosure(int graph[MAX][MAX], int numVert)\n{\n\tint i,j,k;\n\tfor (k=0; k&lt;numVert; k++)\n\t{\n\t\tfor (i=0; i&lt;numVert; i++)\n\t\t{\n\t\t\tfor (j=0; j&lt;numVert; j++)\n\t\t\t{\n\t\t\t\tif (graph[i][j] || (graph[i][k] &amp;&amp; graph[k][j]))\n\t\t\t\t\tgraph[i][j] = 1;\n\t\t\t}\n\t\t}\n\t}\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 03BWarshall.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find transitive closure of a given directed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\t\t\tgraph using Warshall&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">stdio.h<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAX <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">WarshallTransitiveClosure<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> graph[MAX][MAX], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> numVert);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: 0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, numVert;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> graph[MAX][MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Warshall&#39;s Transitive Closure<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of vertices : &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">numVert);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the adjacency matrix :-<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">graph[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">WarshallTransitiveClosure<\/span><span style=\"color: #E1E4E8\">(graph, numVert);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">The transitive closure for the given graph is :-<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%d<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,graph[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: WarshallTransitiveClosure<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to transitive closure of a given directed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\t\t\tgraph using Warshall&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint graph[MAX][MAX] - adjacency matrix of the input graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint numVert - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">WarshallTransitiveClosure<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> graph[MAX][MAX], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> numVert)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j,k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (k<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; k<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numVert; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (graph[i][j] <\/span><span style=\"color: #F97583\">||<\/span><span style=\"color: #E1E4E8\"> (graph[i][k] <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> graph[k][j]))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tgraph[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"\/***************************************\nWarshall's Transitive Closure\n***************************************\/\nEnter the number of vertices : 4\nEnter the adjacency matrix :-\n0 0 1 0\n0 0 0 1\n1 0 0 0\n0 1 0 0\nThe transitive closure for the given graph is :-\n1\t0\t1\t0\t\n0\t1\t0\t1\t\n1\t0\t1\t0\t\n0\t1\t0\t1\t\n\/***************************************\nWarshall's Transitive Closure\n***************************************\/\nEnter the number of vertices : 4\nEnter the adjacency matrix :-\n0 1 1 0\n1 0 0 1\n1 0 0 1\n0 1 1 0\nThe transitive closure for the given graph is :-\n1\t1\t1\t1\t\n1\t1\t1\t1\t\n1\t1\t1\t1\t\n1\t1\t1\t1\t\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/***************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">Warshall&#39;s Transitive Closure<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">***************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number of vertices : <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the adjacency matrix :<\/span><span style=\"color: #F97583\">-<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The transitive closure <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> the given graph is :<\/span><span style=\"color: #F97583\">-<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/***************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">Warshall&#39;s Transitive Closure<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">***************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number of vertices : <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the adjacency matrix :<\/span><span style=\"color: #F97583\">-<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The transitive closure <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> the given graph is :<\/span><span style=\"color: #F97583\">-<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P04\">Program 04<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Dijkstra&#8217;s Algorithm<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to find shortest paths from a given vertex in a weighted connected graph to other vertices using Dijkstra&#8217;s algorithm.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t: 04Dijkstra.cpp\n*Description: Program to find shortest paths to other vertices using \n*\t\t\t\tDijkstra's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;cstdio&gt;\nusing namespace std;\nconst int MAXNODES = 10,INF = 9999;\nvoid fnDijkstra(int [][MAXNODES], int [], int [], int[], int, int, int);\n\/******************************************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t: 0 on success\n******************************************************************************\/\nint main(void)\n{\n\tint n,cost[MAXNODES][MAXNODES],dist[MAXNODES],visited[MAXNODES],path[MAXNODES],i,j,source,dest;\n\tcout &lt;&lt; &quot;nEnter the number of nodesn&quot;;\n\tcin &gt;&gt; n;\n\tcout &lt;&lt; &quot;Enter the Cost Matrixn&quot; &lt;&lt; endl;\n\tfor (i=0;i&lt;n;i++)\n\t\tfor (j=0;j&lt;n;j++)\n\t\t\tcin &gt;&gt; cost[i][j];\n\tcout &lt;&lt; &quot;Enter the Source vertex&quot; &lt;&lt; endl;\n\tcin &gt;&gt; source;\n\t\n\tcout &lt;&lt; &quot;n\/\/For Source Vertex : &quot; &lt;&lt; source &lt;&lt; &quot; shortest path to other vertices\/\/&quot;&lt;&lt; endl;\n\tfor (dest=0; dest &lt; n; dest++)\n\t{\n\t\tfnDijkstra(cost,dist,path,visited,source,dest,n);\n\t\tif (dist[dest] == INF)\n\t\tcout &lt;&lt; dest &lt;&lt; &quot; not reachable&quot; &lt;&lt; endl;\n\t\telse\n\t\t{\n\t\t\tcout &lt;&lt; endl;\n\t\t\ti = dest;\n\t\t\tdo\n\t\t\t{\n\t\t\t\tcout &lt;&lt; i &lt;&lt; &quot;&lt;--&quot;;\n\t\t\t\ti = path[i];\n\t\t\t}while (i!= source);\n\t\t\tcout &lt;&lt; i &lt;&lt; &quot; = &quot; &lt;&lt; dist[dest] &lt;&lt; endl;\n\t\t}\n\t}\n\t\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: fnDijkstra\n*Description\t: Function to find shortest paths to other vertices\n* using Dijkstra's algorithm.\n*Input parameters:\n*\tint c[][] - cost adjacency matrix of the graph\n*\tint d[] - distance vector\n*\tint p[] - path vector\n*\tint s[] - vector to store visited information\n*\tint so\t- source vertex\n*\tint de\t- destination vertex\n*\tint n - no of vertices in the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnDijkstra(int c[MAXNODES][MAXNODES], int d[MAXNODES], int p[MAXNODES],\nint s[MAXNODES], int so, int de, int n)\n{\n\tint i,j,a,b,min;\n\tfor (i=0;i&lt;n;i++)\n\t{\n\t\ts[i] = 0;\n\t\td[i] = c[so][i];\n\t\tp[i] = so;\n\t}\n\ts[so] = 1;\n\tfor (i=1;i&lt;n;i++)\n\t{\n\t\tmin = INF;\n\t\ta = -1;\n\t\tfor (j=0;j&lt;n;j++)\n\t\t{\n\t\t\tif (s[j] == 0)\n\t\t\t{\n\t\t\t\tif (d[j] &lt; min)\n\t\t\t\t{\n\t\t\t\t\tmin = d[j];\n\t\t\t\t\ta = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (a == -1) return;\n\t\ts[a] = 1;\n\t\tif (a == de) return;\n\t\tfor (b=0;b&lt;n;b++)\n\t\t{\n\t\t\tif (s[b] == 0)\n\t\t\t{\n\t\t\t\tif (d[a] + c[a][b] &lt; d[b])\n\t\t\t\t{\n\t\t\t\t\td[b] = d[a] + c[a][b];\n\t\t\t\t\tp[b] = a;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 04Dijkstra.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find shortest paths to other vertices using <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\t\tDijkstra&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;cstdio&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAXNODES <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">,INF <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDijkstra<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [][MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: 0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n,cost[MAXNODES][MAXNODES],dist[MAXNODES],visited[MAXNODES],path[MAXNODES],i,j,source,dest;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the number of nodes<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the Cost Matrix<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> cost[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the Source vertex&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> source;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">\/\/For Source Vertex : &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> source <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; shortest path to other vertices\/\/&quot;<\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (dest<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; dest <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; dest<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnDijkstra<\/span><span style=\"color: #E1E4E8\">(cost,dist,path,visited,source,dest,n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (dist[dest] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> INF)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> dest <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; not reachable&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> dest;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;&lt;--&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> path[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> source);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; = &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> dist[dest] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnDijkstra<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find shortest paths to other vertices<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">* using Dijkstra&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint c[][] - cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint d[] - distance vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint p[] - path vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint s[] - vector to store visited information<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint so\t- source vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint de\t- destination vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDijkstra<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">c<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[MAXNODES],<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">so<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">de<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j,a,b,min;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ts[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\td[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> c[so][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tp[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> so;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ts[so] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (s[j] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (d[j] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> d[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (a <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ts[a] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (a <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> de) <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (b<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;b<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;b<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (s[b] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (d[a] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> c[a][b] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> d[b])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\td[b] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> d[a] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> c[a][b];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tp[b] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> a;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t: 04Dijkstra.c\n*Description: Program to find shortest paths to other vertices using \n*\t\t\t\tDijkstra's algorithm.\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n\nconst int MAXNODES = 10,INF = 9999;\nvoid fnDijkstra(int [MAXNODES][MAXNODES], int [MAXNODES], int [MAXNODES], int[MAXNODES], int, int, int);\n\/******************************************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t: 0 on success\n******************************************************************************\/\nint main(void)\n{\n\tint n,cost[MAXNODES][MAXNODES],dist[MAXNODES],visited[MAXNODES],path[MAXNODES],i,j,source,dest;\n\tprintf(&quot;\\nEnter the number of nodes\\n&quot;);\n\tscanf(&quot;%d&quot;, &amp;n);\n\tprintf(&quot;Enter the Cost Matrix\\n\\n&quot;);\n\tfor (i=0;i&lt;n;i++)\n\t\tfor (j=0;j&lt;n;j++)\n\t\t\tscanf(&quot;%d&quot;, &amp;cost[i][j]);\n\tprintf(&quot;Enter the Source vertex\\n&quot;);\n\tscanf(&quot;%d&quot;, &amp;source);\n\t\n\tprintf(&quot;\\n\/\/For Source Vertex : %d shortest path to other vertices\/\/\\n&quot;, source);\n\tfor (dest=0; dest &lt; n; dest++)\n\t{\n\t\tfnDijkstra(cost,dist,path,visited,source,dest,n);\n\t\tif (dist[dest] == INF)\n\t\tprintf(&quot;%d not reachable\\n\\n&quot;, dest);\n\t\telse\n\t\t{\n\t\t\tprintf(&quot;\\n&quot;);\n\t\t\ti = dest;\n\t\t\tdo\n\t\t\t{\n\t\t\t\tprintf(&quot;%d &lt;--&quot;, i);\n\t\t\t\ti = path[i];\n\t\t\t}while (i!= source);\n\t\t\tprintf(&quot;%d = %d\\n&quot;, i, dist[dest]);\n\t\t}\n\t}\n\t\n\treturn 0;\n}\n\n\/******************************************************************************\n*Function\t: fnDijkstra\n*Description\t: Function to find shortest paths to other vertices\n* using Dijkstra's algorithm.\n*Input parameters:\n*\tint c[][] - cost adjacency matrix of the graph\n*\tint d[] - distance vector\n*\tint p[] - path vector\n*\tint s[] - vector to store visited information\n*\tint so\t- source vertex\n*\tint de\t- destination vertex\n*\tint n - no of vertices in the graph\n*RETURNS\t: no value\n******************************************************************************\/\nvoid fnDijkstra(int c[MAXNODES][MAXNODES], int d[MAXNODES], int p[MAXNODES], \tint s[MAXNODES], int so, int de, int n)\n{\n\tint i,j,a,b,min;\n\tfor (i=0;i&lt;n;i++)\n\t{\n\t\ts[i] = 0;\n\t\td[i] = c[so][i];\n\t\tp[i] = so;\n\t}\n\ts[so] = 1;\n\tfor (i=1;i&lt;n;i++)\n\t{\n\t\tmin = INF;\n\t\ta = -1;\n\t\tfor (j=0;j&lt;n;j++)\n\t\t{\n\t\t\tif (s[j] == 0)\n\t\t\t{\n\t\t\t\tif (d[j] &lt; min)\n\t\t\t\t{\n\t\t\t\t\tmin = d[j];\n\t\t\t\t\ta = j;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (a == -1) return;\n\t\ts[a] = 1;\n\t\tif (a == de) return;\n\n\t\tfor (b=0;b&lt;n;b++)\n\t\t{\n\t\t\tif (s[b] == 0)\n\t\t\t{\n\t\t\t\tif (d[a] + c[a][b] &lt; d[b])\n\t\t\t\t{\n\t\t\t\t\td[b] = d[a] + c[a][b];\n\t\t\t\t\tp[b] = a;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 04Dijkstra.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find shortest paths to other vertices using <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\t\t\t\tDijkstra&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAXNODES <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">,INF <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDijkstra<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [MAXNODES][MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: 0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n,<\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES],<\/span><span style=\"color: #FFAB70\">dist<\/span><span style=\"color: #E1E4E8\">[MAXNODES],<\/span><span style=\"color: #FFAB70\">visited<\/span><span style=\"color: #E1E4E8\">[MAXNODES],<\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">[MAXNODES],i,j,source,dest;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Enter the number of nodes<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the Cost Matrix<\/span><span style=\"color: #79B8FF\">\\n\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">cost<\/span><span style=\"color: #E1E4E8\">[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the Source vertex<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">source);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">\/\/For Source Vertex : <\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\"> shortest path to other vertices\/\/<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, source);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (dest<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; dest <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; dest<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnDijkstra<\/span><span style=\"color: #E1E4E8\">(cost,dist,path,visited,source,dest,n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">dist<\/span><span style=\"color: #E1E4E8\">[dest] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> INF)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\"> not reachable<\/span><span style=\"color: #79B8FF\">\\n\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, dest);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> dest;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\"> &lt;--&quot;<\/span><span style=\"color: #E1E4E8\">, i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> source);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\"> = <\/span><span style=\"color: #79B8FF\">%d\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, i, <\/span><span style=\"color: #FFAB70\">dist<\/span><span style=\"color: #E1E4E8\">[dest]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnDijkstra<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to find shortest paths to other vertices<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">* using Dijkstra&#39;s algorithm.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint c[][] - cost adjacency matrix of the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint d[] - distance vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint p[] - path vector<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint s[] - vector to store visited information<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint so\t- source vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint de\t- destination vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDijkstra<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">c<\/span><span style=\"color: #E1E4E8\">[MAXNODES][MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[MAXNODES], \t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[MAXNODES], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">so<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">de<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j,a,b,min;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">c<\/span><span style=\"color: #E1E4E8\">[so][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> so;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[so] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[j] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[j] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\tmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (a <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[a] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (a <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> de) <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (b<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;b<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;b<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">s<\/span><span style=\"color: #E1E4E8\">[b] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[a] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">c<\/span><span style=\"color: #E1E4E8\">[a][b] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[b])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\t<\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[b] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">d<\/span><span style=\"color: #E1E4E8\">[a] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">c<\/span><span style=\"color: #E1E4E8\">[a][b];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t\t<\/span><span style=\"color: #FFAB70\">p<\/span><span style=\"color: #E1E4E8\">[b] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> a;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graph<\/h4>\n\n\n\n<p>For this program lets consider the following graph<\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Dijkstra.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"968\" height=\"416\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Dijkstra.png?resize=968%2C416&#038;ssl=1\" alt=\"\" class=\"wp-image-655 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Dijkstra.png?w=968&amp;ssl=1 968w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Dijkstra.png?resize=300%2C129&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Dijkstra.png?resize=768%2C330&amp;ssl=1 768w\" data-sizes=\"(max-width: 968px) 100vw, 968px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 968px; --smush-placeholder-aspect-ratio: 968\/416;\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output:<\/h4>\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:#24292e\"><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=\"Enter the number of nodes\n6\nEnter the Cost Matrix\n0\t4\t4\t9999\t9999\t9999\n4\t0\t2\t9999\t9999\t9999\n4\t2\t0\t3\t1\t6\n9999\t9999\t3\t0\t9999\t2\n9999\t9999\t1\t9999\t0\t3\n9999\t9999\t6\t2\t3\t0\nEnter the Source vertex\n0\n\/\/For Source Vertex : 0 shortest path to other vertices\/\/\n0&lt;--0 = 0\n1&lt;--0 = 4\n2&lt;--0 = 4\n3&lt;--2&lt;--0 = 7\n4&lt;--2&lt;--0 = 5\n5&lt;--4&lt;--2&lt;--0 = 8\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> nodes<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the Cost Matrix<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9999<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the Source vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/For Source Vertex : 0 shortest path to other vertices\/\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">7<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">&lt;--<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">8<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P05\">Program 05<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Topological Ordering<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to obtain the Topological ordering of vertices in a given digraph.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Program<\/h4>\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:#1E1E1E\"><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=\"\/******************************************************************************\n*File\t\t\t: 05Topological.cpp\n*Description\t: Program to find Topological ordering of nodes in a DAG\n*Author\t\t\t: Prabodh C P\n*Compiler\t\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;stack&gt;\n#include &lt;vector&gt;\nusing namespace std;\nconst int MAX = 10;\nclass Graph{\n\tint iNum;\n\tint iaGraph[MAX][MAX];\n\tvector &lt;int&gt; jobVector;\n\tpublic:\n\tfriend istream&amp; operator&gt;&gt;(istream&amp;, Graph&amp;);\n\tvoid fnCompTopoOrder();\n\tvoid fnDispTopoOrder();\n};\nistream&amp; operator&gt;&gt;(istream &amp;in, Graph &amp;g)\n{\n\tcout &lt;&lt; &quot;Enter the number of vertices : &quot;;\n\tin &gt;&gt; g.iNum;\n    cout &lt;&lt; &quot;nEnter the adjacency matrix (graph should be a DAG)&quot; &lt;&lt; endl;\n\tfor(int i=0;i&lt;g.iNum;i++)\n\t\tfor(int j=0;j&lt;g.iNum;j++)\n\t\t\tin &gt;&gt; g.iaGraph[i][j];\n\treturn in;\n}\nvoid Graph::fnCompTopoOrder()\n{\n    int i, j, k=0;\n\tvector &lt;int&gt; inDegree(MAX);\n\tstack &lt;int&gt; myStack;\n\tfor(i=0;i&lt;iNum;i++)\n\t{\n\t\tinDegree[i] = 0;\n\t\tfor(j=0;j&lt;iNum;j++)\n\t\t{\n\t\t\tinDegree[i] += iaGraph[j][i];\n\t\t}\n\t}\n\twhile(1)\n\t{\n\t\tfor(i=0;i&lt;iNum;i++)\n\t\t{\n\t\t\tif(inDegree[i] == 0)\n\t\t\t{\n\t\t\t\tmyStack.push(i);\n\t\t\t\tinDegree[i] = -1;\n\t\t\t}\n\t\t}\n\t\tif(myStack.empty())\n            break;\n        jobVector.push_back(myStack.top());\n        myStack.pop();\n\t\tfor(i=0;i&lt;iNum;i++)\n\t\t{\n            if(iaGraph[jobVector[k]][i])\n            {\n                inDegree[i]--;\n            }\n\t\t}\n\t\tk++;\n\t}\n}\nvoid Graph::fnDispTopoOrder()\n{\n    cout &lt;&lt; &quot;Topological Ordering (JOB SEQUENCE) is:&quot;;\n    for(size_t i=0; i&lt;jobVector.size(); i++)\n    {\n        cout &lt;&lt; jobVector[i]+1 &lt;&lt; &quot;t&quot;;\n    }\n    cout &lt;&lt; endl;\n}\nint main()\n{\n    Graph myGraph;\n    cin &gt;&gt; myGraph;\n    myGraph.fnCompTopoOrder();\n    myGraph.fnDispTopoOrder();\n    return 0;\n}\n\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t\t: 05Topological.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Program to find Topological ordering of nodes in a DAG<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author\t\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stack&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">using<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">namespace<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">std<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> MAX = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Graph<\/span><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">iaGraph<\/span><span style=\"color: #D4D4D4\">[MAX][MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tvector &lt;<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">&gt; jobVector;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">public:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">friend<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">istream<\/span><span style=\"color: #569CD6\">&amp;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C586C0\">operator&gt;&gt;<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #4EC9B0\">istream<\/span><span style=\"color: #569CD6\">&amp;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Graph<\/span><span style=\"color: #569CD6\">&amp;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnCompTopoOrder<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnDispTopoOrder<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #4EC9B0\">istream<\/span><span style=\"color: #569CD6\">&amp;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C586C0\">operator&gt;&gt;<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #4EC9B0\">istream<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">&amp;<\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">Graph<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">&amp;<\/span><span style=\"color: #9CDCFE\">g<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;Enter the number of vertices : &quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tin &gt;&gt; <\/span><span style=\"color: #9CDCFE\">g<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">iNum<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Enter the adjacency matrix (graph should be a DAG)&quot;<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;<\/span><span style=\"color: #9CDCFE\">g<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">iNum<\/span><span style=\"color: #D4D4D4\">;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> j=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;j&lt;<\/span><span style=\"color: #9CDCFE\">g<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">iNum<\/span><span style=\"color: #D4D4D4\">;j++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\tin &gt;&gt; <\/span><span style=\"color: #9CDCFE\">g<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">iaGraph<\/span><span style=\"color: #D4D4D4\">[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> in;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Graph<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">fnCompTopoOrder<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i, j, k=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tvector &lt;<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">&gt; <\/span><span style=\"color: #DCDCAA\">inDegree<\/span><span style=\"color: #D4D4D4\">(MAX);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tstack &lt;<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">&gt; myStack;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;iNum;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">inDegree<\/span><span style=\"color: #D4D4D4\">[i] = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(j=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;j&lt;iNum;j++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #9CDCFE\">inDegree<\/span><span style=\"color: #D4D4D4\">[i] += <\/span><span style=\"color: #9CDCFE\">iaGraph<\/span><span style=\"color: #D4D4D4\">[j][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;iNum;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">inDegree<\/span><span style=\"color: #D4D4D4\">[i] == <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">myStack<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push<\/span><span style=\"color: #D4D4D4\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">inDegree<\/span><span style=\"color: #D4D4D4\">[i] = -<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">myStack<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">empty<\/span><span style=\"color: #D4D4D4\">())<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">jobVector<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push_back<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">myStack<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">top<\/span><span style=\"color: #D4D4D4\">());<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">myStack<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">pop<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;iNum;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">iaGraph<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #9CDCFE\">jobVector<\/span><span style=\"color: #D4D4D4\">[k]][i])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #9CDCFE\">inDegree<\/span><span style=\"color: #D4D4D4\">[i]--;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tk++;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">Graph<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">fnDispTopoOrder<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;Topological Ordering (JOB SEQUENCE) is:&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">size_t<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;<\/span><span style=\"color: #9CDCFE\">jobVector<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">size<\/span><span style=\"color: #D4D4D4\">(); i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        cout &lt;&lt; <\/span><span style=\"color: #9CDCFE\">jobVector<\/span><span style=\"color: #D4D4D4\">[i]+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">t<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    cout &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    Graph myGraph;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    cin &gt;&gt; myGraph;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">myGraph<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnCompTopoOrder<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">myGraph<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnDispTopoOrder<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Program<\/h4>\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:#1E1E1E\"><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=\"\/******************************************************************************\n*File\t\t\t: 05Topological.c\n*Description\t: Program to find Topological ordering of nodes in a DAG\n*Author\t\t\t: Prabodh C P\n*Compiler\t\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;stdio.h&gt;\nconst int MAX = 10;\nvoid fnTopological(int a[MAX][MAX], int n);\n\/******************************************************************************\n*Function\t: main\n*Function parameters:\n*\tint argc - no of commamd line arguments\n*\tchar **argv - vector to store command line argumennts\n*RETURNS\t:\t0 on success\n******************************************************************************\/\nint main( int argc, char **argv)\n{\n\tint graph[MAX][MAX],n;\n\tint i,j;\n\tprintf(&quot;Topological Sorting Algorithm -n&quot;);\n\tprintf(&quot;nEnter the number of vertices : &quot;);\n\tscanf(&quot;%d&quot;,&amp;n);\n\tprintf(&quot;Enter the adjacency matrix (graph should be a DAG)n&quot;);\n\tfor (i=0; i&lt;n; i++)\n\t\tfor (j=0; j&lt;n; j++)\n\t\t\tscanf(&quot;%d&quot;,&amp;graph[i][j]);\n\tfnTopological(graph,n);\n\tprintf(&quot;n&quot;);\n\treturn 0;\n}\n\/******************************************************************************\n*Function: fnTopological\n*Description: Function to find Topological ordering of nodes in a DAG\n*Input parameters:\n*\tint graph[MAX][MAX] - adjacency matrix of the input graph\n*\tint n - no of vertices in the graph\n*RETURNS: no value\n******************************************************************************\/\nvoid fnTopological(int graph[MAX][MAX], int n)\n{\n\tint in[MAX], out[MAX], stack[MAX], top=-1;\n\tint i,j,k=0;\n\tfor (i=0;i&lt;n;i++)\n\t{\n\t\tin[i] = 0;\n\t\tfor (j=0; j&lt;n; j++)\n\t\t\tif (graph[j][i] == 1)\n\t\t\t\tin[i]++;\n\t}\t\n\t\n\twhile(1)\n\t{\n\t\tfor (i=0;i&lt;n;i++)\n\t\t{\n\t\t\tif (in[i] == 0)\n\t\t\t{\n\t\t\t\tstack[++top] = i;\n\t\t\t\tin[i] = -1;\n\t\t\t}\n\t\t}\n\t\tif (top == -1)\n\t\tbreak;\n\t\tout[k] = stack[top--];\n\t\tfor(i=0;i&lt;n;i++)\n\t\t{\n\t\t\tif (graph[out[k]][i] == 1)\n\t\t\t\tin[i]--;\n\t\t}\n\t\tk++;\t\t\n\t}\n\tprintf(&quot;Topological Sorting (JOB SEQUENCE) is:- n&quot;);\n\tfor (i=0;i&lt;k;i++)\n\t\tprintf(&quot;%dt&quot;, out[i] + 1);\n\tprintf(&quot;n&quot;);\n}\n\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t\t: 05Topological.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Program to find Topological ordering of nodes in a DAG<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author\t\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> MAX = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnTopological<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[MAX][MAX], <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tchar **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">argc<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">char<\/span><span style=\"color: #D4D4D4\"> **<\/span><span style=\"color: #9CDCFE\">argv<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">graph<\/span><span style=\"color: #D4D4D4\">[MAX][MAX],n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Topological Sorting Algorithm -<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Enter the number of vertices : &quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Enter the adjacency matrix (graph should be a DAG)<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;n; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (j=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; j&lt;n; j++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;<\/span><span style=\"color: #9CDCFE\">graph<\/span><span style=\"color: #D4D4D4\">[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">fnTopological<\/span><span style=\"color: #D4D4D4\">(graph,n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function: fnTopological<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Function to find Topological ordering of nodes in a DAG<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint graph[MAX][MAX] - adjacency matrix of the input graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n - no of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*<\/span><span style=\"color: #569CD6\">RETURNS:<\/span><span style=\"color: #6A9955\"> no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnTopological<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">graph<\/span><span style=\"color: #D4D4D4\">[MAX][MAX], <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">[MAX], <\/span><span style=\"color: #9CDCFE\">out<\/span><span style=\"color: #D4D4D4\">[MAX], <\/span><span style=\"color: #9CDCFE\">stack<\/span><span style=\"color: #D4D4D4\">[MAX], top=-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i,j,k=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">[i] = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (j=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; j&lt;n; j++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">graph<\/span><span style=\"color: #D4D4D4\">[j][i] == <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">[i]++;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">[i] == <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">stack<\/span><span style=\"color: #D4D4D4\">[++top] = i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">[i] = -<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (top == -<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">out<\/span><span style=\"color: #D4D4D4\">[k] = <\/span><span style=\"color: #9CDCFE\">stack<\/span><span style=\"color: #D4D4D4\">[top--];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #9CDCFE\">graph<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #9CDCFE\">out<\/span><span style=\"color: #D4D4D4\">[k]][i] == <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">in<\/span><span style=\"color: #D4D4D4\">[i]--;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tk++;\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Topological Sorting (JOB SEQUENCE) is:- <\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;k;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #D7BA7D\">t<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #9CDCFE\">out<\/span><span style=\"color: #D4D4D4\">[i] + <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graph<\/h4>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/graph-1.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"392\" height=\"392\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/graph-1.png?resize=392%2C392&#038;ssl=1\" alt=\"\" class=\"wp-image-1960 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/graph-1.png?w=392&amp;ssl=1 392w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/graph-1.png?resize=300%2C300&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/graph-1.png?resize=150%2C150&amp;ssl=1 150w\" data-sizes=\"(max-width: 392px) 100vw, 392px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 392px; --smush-placeholder-aspect-ratio: 392\/392;\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#1E1E1E\"><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=\"\nEnter the number of vertices : \t5\nEnter the adjacency matrix -\n0 0 1 0 0\n0 0 1 0 0\n0 0 0 1 1\n0 0 0 0 1\n0 0 0 0 0\nTopological Sorting (JOB SEQUENCE) is:- \n2\t1\t3\t4\t5\t\n\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Enter the number of vertices : \t<\/span><span style=\"color: #B5CEA8\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Enter the adjacency matrix -<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Topological <\/span><span style=\"color: #DCDCAA\">Sorting<\/span><span style=\"color: #D4D4D4\"> (JOB <\/span><span style=\"color: #9CDCFE\">SEQUENCE<\/span><span style=\"color: #D4D4D4\">) is:- <\/span><\/span>\n<span class=\"line\"><span style=\"color: #B5CEA8\">2<\/span><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #B5CEA8\">3<\/span><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #B5CEA8\">4<\/span><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #B5CEA8\">5<\/span><span style=\"color: #D4D4D4\">\t<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P06\">Program 06<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">0\/1 Knapsack problem<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to solve 0\/1 Knapsack problem using Dynamic Programming method.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/********************************************************************************\n*File\t\t: 06Knapsack.cpp\n*Description: Program to find solution to 0\/1 Knapsack problem using Dynamic Programming\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n********************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;iomanip&gt;\n#include &lt;vector&gt;\nusing namespace std;\nconst int MAX = 10;\ninline int max(int x, int y)\n{\n    return (x&gt;y)?x:y;\n}\nclass Knapsack\n{\n    int totalProfit;\n    int weight[MAX];\n    int profit[MAX];\n    int capacity;\n    int numOfObj;\n    int subset[MAX];\n    int table[MAX][MAX];\n    public:\n    Knapsack();\n    void fnReadKnapDetails();\n    void fnCalcProfit();\n    void fnFindSubSet();\n};\nvoid Knapsack::fnReadKnapDetails()\n{\n    int i;\n    cout &lt;&lt; &quot;Enter the maxium number of objects : &quot;;\n    cin &gt;&gt; numOfObj;\n    cout &lt;&lt; &quot;Enter the weights : n&quot;;\n    for (i=1; i&lt;=numOfObj; i++)\n    {\n        cout &lt;&lt; &quot;Weight &quot; &lt;&lt; i &lt;&lt; &quot;: &quot;;\n        cin &gt;&gt; weight[i];\n    }\n    cout &lt;&lt; &quot;nEnter the profits : n&quot;;\n    for (i=1; i&lt;=numOfObj; i++)\n    {\n        cout &lt;&lt; &quot;Profit &quot; &lt;&lt; i &lt;&lt; &quot;: &quot;;\n        cin &gt;&gt; profit[i];\n    }\n    cout &lt;&lt; &quot;nEnter the maximum capacity : &quot;;\n    cin &gt;&gt; capacity;\n}\nKnapsack :: Knapsack()\n{\n    int i;\n    totalProfit = 0;\n    for( i=1; i&lt;=numOfObj; i++)\n        subset[i] = 0;\n}\nvoid Knapsack::fnCalcProfit()\n{\n    int i,j;\n    for (j=0; j&lt;=capacity; j++)\n        table[0][j] = 0;\n    for (i=0; i&lt;=numOfObj; i++)\n        table[i][0] = 0;\n    for (i=1; i&lt;=numOfObj; i++)\n    {\n        for (j=1; j&lt;=capacity; j++)\n        {\n            if (j-weight[i] &lt; 0)\n                table[i][j] = table[i-1][j];\n            else\n                table[i][j] = max(table[i-1][j], profit[i] + table[i-1][j-weight[i]]);\n        }\n    }\n    totalProfit = table[numOfObj][capacity];\n    cout &lt;&lt; &quot;nProfit Matrix&quot; &lt;&lt; endl;\n    for(i=0;i&lt;=numOfObj; i++)\n    {\n    \tfor (j=0; j&lt;=capacity; j++)\n    \t{\n    \t\tcout &lt;&lt; setw(6) &lt;&lt; table[i][j];\n    \t}\n    \tcout &lt;&lt; endl;\n    }\n    cout &lt;&lt; endl;\n}\nvoid Knapsack::fnFindSubSet()\n{\n    int i,j;\n    i = numOfObj;\n    j = capacity;\n    while (i &gt;= 1 &amp;&amp; j &gt;= 1)\n    {\n        if (table[i][j] != table[i-1][j])\n        {\n            subset[i] = 1;\n            j = j - weight[i];\n        }\n        i--;\n    }\n    cout &lt;&lt; &quot;Items selected for the Knapsack are : &quot; ;\n    for(i=1;i&lt;=numOfObj;i++)\n    {\n        if(subset[i] == 1)\n        cout &lt;&lt; i &lt;&lt; &quot; &quot;;\n    }\n    cout &lt;&lt; endl;\n    cout &lt;&lt; &quot;Total Profit earned is &quot; &lt;&lt; totalProfit &lt;&lt; endl;\n}\nint main()\n{\n    Knapsack knapsackObj;\n    knapsackObj.fnReadKnapDetails();\n    knapsackObj.fnCalcProfit();\n    knapsackObj.fnFindSubSet();\n    return 0;\n}\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/********************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 06Knapsack.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find solution to 0\/1 Knapsack problem using Dynamic Programming<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">********************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iomanip&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> MAX <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">inline<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">max<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">x<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">y<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> (x<\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\">y)<\/span><span style=\"color: #F97583\">?<\/span><span style=\"color: #E1E4E8\">x<\/span><span style=\"color: #F97583\">:<\/span><span style=\"color: #E1E4E8\">y;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Knapsack<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> totalProfit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> weight[MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> profit[MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> capacity;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> numOfObj;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> subset[MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> table[MAX][MAX];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #B392F0\">Knapsack<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnReadKnapDetails<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnCalcProfit<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnFindSubSet<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Knapsack<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnReadKnapDetails<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the maxium number of objects : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> numOfObj;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the weights : <\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Weight &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;: &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> weight[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the profits : <\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Profit &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;: &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> profit[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the maximum capacity : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> capacity;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #B392F0\">Knapsack<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">Knapsack<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    totalProfit <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">( i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        subset[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Knapsack<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnCalcProfit<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">capacity; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        table[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        table[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">capacity; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">weight[i] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                table[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> table[i<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                table[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">max<\/span><span style=\"color: #E1E4E8\">(table[i<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">][j], profit[i] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> table[i<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">][j<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">weight[i]]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    totalProfit <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> table[numOfObj][capacity];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Profit Matrix&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">capacity; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> table[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Knapsack<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnFindSubSet<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> numOfObj;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> capacity;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (i <\/span><span style=\"color: #F97583\">&gt;=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">&gt;=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (table[i][j] <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> table[i<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">][j])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            subset[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> weight[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        i<\/span><span style=\"color: #F97583\">--<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Items selected for the Knapsack are : &quot;<\/span><span style=\"color: #E1E4E8\"> ;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">numOfObj;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(subset[i] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Total Profit earned is &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> totalProfit <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    Knapsack knapsackObj;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    knapsackObj.<\/span><span style=\"color: #B392F0\">fnReadKnapDetails<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    knapsackObj.<\/span><span style=\"color: #B392F0\">fnCalcProfit<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    knapsackObj.<\/span><span style=\"color: #B392F0\">fnFindSubSet<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Sample<\/h4>\n\n\n\n<p>Lets consider this sample input for the 0\/1 Knapsack Problem.<\/p>\n\n\n\n<p><strong>Knapsack Capacity : 5<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Item<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Weight<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Profit<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><td class=\"has-text-align-center\" data-align=\"center\">12<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">10<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3<\/td><td class=\"has-text-align-center\" data-align=\"center\">3<\/td><td class=\"has-text-align-center\" data-align=\"center\">20<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">4<\/td><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><td class=\"has-text-align-center\" data-align=\"center\">15<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"Enter the maxium number of objects : 4\nEnter the weights : \nWeight 1: 2\nWeight 2: 1\nWeight 3: 3\nWeight 4: 2\nEnter the profits : \nProfit 1: 12\nProfit 2: 10\nProfit 3: 20\nProfit 4: 15\nEnter the maximum capacity : 5\nProfit Matrix\n     0     0     0     0     0     0\n     0     0    12    12    12    12\n     0    10    12    22    22    22\n     0    10    12    22    30    32\n     0    10    15    25    30    37\nItems selected for the Knapsack are : 1 2 4 \nTotal Profit earned is 37\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the maxium number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">objects<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the <\/span><span style=\"color: #B392F0\">weights<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Weight <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Weight <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Weight <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Weight <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the <\/span><span style=\"color: #B392F0\">profits<\/span><span style=\"color: #E1E4E8\"> : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Profit <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">12<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Profit <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Profit <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">20<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Profit <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">15<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the maximum <\/span><span style=\"color: #B392F0\">capacity<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Profit Matrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">12<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">22<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">22<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">22<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">22<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">30<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">32<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">15<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">25<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">30<\/span><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">37<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Items selected for the Knapsack <\/span><span style=\"color: #B392F0\">are<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Total Profit earned is <\/span><span style=\"color: #79B8FF\">37<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P07\">Program 07<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Knapsack problem using Greedy method.<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to solve discrete Knapsack and continuous Knapsack problems using greedy approximation method.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/********************************************************************************\n*File\t\t: 07GreedyKnapsack.cpp\n*Description: Program to find solution to discrete &amp; continous Knapsack problem using Greedy Method\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n********************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;fstream&gt;\n#include &lt;iomanip&gt;\n#include &lt;vector&gt;\n#include &lt;cstdlib&gt;\nusing namespace std;\ntypedef struct{\n    int profit;\n    int weight;\n    float profitRatio;\n    float fraction;\n}Item;\nint main()\n{\n    vector &lt;Item&gt; itemList;\n    int iNum, i, iPos;\n    float knCap, remCap, totProfit;\n    Item a;\n    cout &lt;&lt; &quot;Enter the number of items : &quot; ;\n    cin &gt;&gt; iNum;\n    cout &lt;&lt; &quot;Enter Knapsack capacity : &quot;;\n    cin &gt;&gt; knCap;\n\t\/\/for each item calculate the profit ratio and add that item to the item list in sorted order of profits\n    for(i=0;i&lt;iNum;i++)\n    {\n        cout &lt;&lt; &quot;Enter profit : &quot;; cin &gt;&gt; a.profit;\n        cout &lt;&lt; &quot;Enter weight : &quot;; cin &gt;&gt; a.weight;\n        a.profitRatio = (float)a.profit \/ a.weight;\n        a.fraction = 0.0f;\n        \/\/cout &lt;&lt; a.profitRatio &lt;&lt; endl;\n        if (itemList.size() == 0)\n        {\n            itemList.push_back(a);\n        }\n        else\n        {\n            iPos=0;\n            while(a.profitRatio &lt; itemList[iPos].profitRatio) iPos++;\n            itemList.insert(itemList.begin() + iPos,a);\n        }\n    }\n    remCap = knCap;\n    totProfit = 0.0;\n    for(i=0;i&lt;iNum;i++)\n    {\n        a = itemList[i];\n        if(a.weight &lt; remCap)\n        {\n            itemList[i].fraction = 1.0;\n            remCap -= itemList[i].weight;\n            totProfit += itemList[i].profit;\n        }\n        if(remCap == 0)\n            break;\n    }\n    cout &lt;&lt; &quot;nDISCRETE KNAPSACK GREEDY SOLUTIONn&quot;;\n    cout &lt;&lt; &quot;ItemtWeighttProfittFraction_Chosenn&quot;;\n    for(i=0;i&lt;iNum;i++)\n    {\n        cout &lt;&lt;setw(4) &lt;&lt; i+1 &lt;&lt; &quot;t&quot; &lt;&lt; setw(6) &lt;&lt; itemList[i].weight &lt;&lt; &quot;t&quot; &lt;&lt; setw(6) &lt;&lt; itemList[i].profit &lt;&lt; &quot;t&quot; &lt;&lt; setw(6) &lt;&lt; setprecision(2) &lt;&lt; itemList[i].fraction &lt;&lt; endl;\n    }\n    cout  &lt;&lt; &quot;nTotal Profit Earned : &quot; &lt;&lt; fixed &lt;&lt; totProfit &lt;&lt; endl;\n    remCap = knCap;\n    totProfit = 0.0;\n    for(i=0;i&lt;iNum;i++)\n    {\n    \titemList[i].fraction = 0.0f;\n    }    \n    for(i=0;i&lt;iNum;i++)\n    {\n        a = itemList[i];\n        if(a.weight &lt; remCap)\n        {\n            itemList[i].fraction = 1.0;\n            remCap -= itemList[i].weight;\n            totProfit += itemList[i].profit;\n        }\n        else\n        {\n            itemList[i].fraction = remCap \/ itemList[i].weight;\n            remCap -= itemList[i].weight * itemList[i].fraction;\n            totProfit += itemList[i].profit * itemList[i].fraction;\n        }\n        if(remCap == 0)\n            break;\n    }\n    cout &lt;&lt; &quot;nCONTINUOUS KNAPSACK GREEDY SOLUTIONn&quot;;\n    cout &lt;&lt; &quot;ItemtWeighttProfittFraction Chosenn&quot;;\n    for(i=0;i&lt;iNum;i++)\n    {\n        cout &lt;&lt; i+1 &lt;&lt; &quot;t&quot; &lt;&lt; itemList[i].weight &lt;&lt; &quot;t&quot; &lt;&lt; itemList[i].profit &lt;&lt; &quot;t&quot; &lt;&lt; setprecision(2) &lt;&lt; itemList[i].fraction &lt;&lt; endl;\n    }\n    cout  &lt;&lt; &quot;nTotal Profit Earned : &quot; &lt;&lt; fixed &lt;&lt; totProfit &lt;&lt; endl;\n    return 0;\n}\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/********************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 07GreedyKnapsack.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find solution to discrete &amp; continous Knapsack problem using Greedy Method<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">********************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;fstream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iomanip&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;cstdlib&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">typedef<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> profit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">float<\/span><span style=\"color: #E1E4E8\"> profitRatio;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">float<\/span><span style=\"color: #E1E4E8\"> fraction;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><span style=\"color: #B392F0\">Item<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    vector <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">Item<\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\"> itemList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iNum, i, iPos;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">float<\/span><span style=\"color: #E1E4E8\"> knCap, remCap, totProfit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    Item a;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of items : &quot;<\/span><span style=\"color: #E1E4E8\"> ;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter Knapsack capacity : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> knCap;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/for each item calculate the profit ratio and add that item to the item list in sorted order of profits<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter profit : &quot;<\/span><span style=\"color: #E1E4E8\">; cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> a.profit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter weight : &quot;<\/span><span style=\"color: #E1E4E8\">; cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> a.weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        a.profitRatio <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">float<\/span><span style=\"color: #E1E4E8\">)a.profit <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> a.weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        a.fraction <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0.0<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">        \/\/cout &lt;&lt; a.profitRatio &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (itemList.<\/span><span style=\"color: #B392F0\">size<\/span><span style=\"color: #E1E4E8\">() <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            itemList.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            iPos<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\">(a.profitRatio <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[iPos].profitRatio) iPos<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            itemList.<\/span><span style=\"color: #B392F0\">insert<\/span><span style=\"color: #E1E4E8\">(itemList.<\/span><span style=\"color: #B392F0\">begin<\/span><span style=\"color: #E1E4E8\">() <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> iPos,a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    remCap <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> knCap;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    totProfit <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        a <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> itemList[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(a.weight <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> remCap)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            itemList[i].fraction <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            remCap <\/span><span style=\"color: #F97583\">-=<\/span><span style=\"color: #E1E4E8\"> itemList[i].weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            totProfit <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> itemList[i].profit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(remCap <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">DISCRETE KNAPSACK GREEDY SOLUTION<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Item<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">Weight<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">Profit<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">Fraction_Chosen<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[i].weight <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[i].profit <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setprecision<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[i].fraction <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout  <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Total Profit Earned : &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> fixed <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> totProfit <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    remCap <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> knCap;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    totProfit <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \titemList[i].fraction <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0.0<\/span><span style=\"color: #F97583\">f<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }    <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        a <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> itemList[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(a.weight <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> remCap)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            itemList[i].fraction <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            remCap <\/span><span style=\"color: #F97583\">-=<\/span><span style=\"color: #E1E4E8\"> itemList[i].weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            totProfit <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> itemList[i].profit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            itemList[i].fraction <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> remCap <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> itemList[i].weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            remCap <\/span><span style=\"color: #F97583\">-=<\/span><span style=\"color: #E1E4E8\"> itemList[i].weight <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> itemList[i].fraction;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            totProfit <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> itemList[i].profit <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> itemList[i].fraction;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(remCap <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">CONTINUOUS KNAPSACK GREEDY SOLUTION<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Item<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">Weight<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">Profit<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">Fraction Chosen<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[i].weight <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[i].profit <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setprecision<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> itemList[i].fraction <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    cout  <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Total Profit Earned : &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> fixed <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> totProfit <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input sample<\/h4>\n\n\n\n<p>Lets consider this sample input for the 0\/1 Knapsack Problem.<\/p>\n\n\n\n<p><strong>Knapsack Capacity : 5<\/strong><\/p>\n\n\n\n<figure class=\"wp-block-table\"><table><tbody><tr><td class=\"has-text-align-center\" data-align=\"center\"><strong>Item<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Weight<\/strong><\/td><td class=\"has-text-align-center\" data-align=\"center\"><strong>Profit<\/strong><\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">1<\/td><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><td class=\"has-text-align-center\" data-align=\"center\">30<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">2<\/td><td class=\"has-text-align-center\" data-align=\"center\">10<\/td><td class=\"has-text-align-center\" data-align=\"center\">40<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">3<\/td><td class=\"has-text-align-center\" data-align=\"center\">15<\/td><td class=\"has-text-align-center\" data-align=\"center\">45<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">4<\/td><td class=\"has-text-align-center\" data-align=\"center\">22<\/td><td class=\"has-text-align-center\" data-align=\"center\">77<\/td><\/tr><tr><td class=\"has-text-align-center\" data-align=\"center\">5<\/td><td class=\"has-text-align-center\" data-align=\"center\">25<\/td><td class=\"has-text-align-center\" data-align=\"center\">90<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"Enter the number of items : 4\nEnter Knapsack capacity : 5\nEnter profit : 12\nEnter weight : 2\nEnter profit : 10\nEnter weight : 1\nEnter profit : 20\nEnter weight : 3\nEnter profit : 15\nEnter weight : 2\nDISCRETE KNAPSACK GREEDY SOLUTION\nItem\tWeight\tProfit\tFraction_Chosen\n   1\t     1\t    10\t     1\n   2\t     2\t    15\t     1\n   3\t     3\t    20\t     0\n   4\t     2\t    12\t     0\nTotal Profit Earned : 25.00\nCONTINUOUS KNAPSACK GREEDY SOLUTION\nItem\tWeight\tProfit\tFraction Chosen\n   1\t     1\t    10\t  1.00\n   2\t     2\t    15\t  1.00\n   3\t     3\t    20\t  0.67\n   4\t     2\t    12\t  0.00\nTotal Profit Earned : 38.33\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">items<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter Knapsack <\/span><span style=\"color: #B392F0\">capacity<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">profit<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">12<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">weight<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">profit<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">10<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">weight<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">profit<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">20<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">weight<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">profit<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">15<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter <\/span><span style=\"color: #B392F0\">weight<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">DISCRETE<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">KNAPSACK<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">GREEDY<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">SOLUTION<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Item\tWeight\tProfit\tFraction_Chosen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">15<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">20<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Total Profit <\/span><span style=\"color: #B392F0\">Earned<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">25.00<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">CONTINUOUS<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">KNAPSACK<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">GREEDY<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">SOLUTION<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Item\tWeight\tProfit\tFraction Chosen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">1.00<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">15<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">1.00<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">20<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">0.67<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">   <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t     <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">12<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">0.00<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Total Profit <\/span><span style=\"color: #B392F0\">Earned<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">38.33<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P08\">Program 08<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Subset Sum Problem<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to find a subset of a given set S = {sl , s2,\u2026..,sn} of n positive<br>integers whose sum is equal to a given positive integer d.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************\n*File\t\t: 08SubSetSum.cpp\n*Description: Program to solve Subset sum problem.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************\/\n#include &lt;iostream&gt;\nusing namespace std;\n\/\/ Constant definitions\nconst int MAX = 100;\n\/\/ class definitions\nclass SubSet\n{\n\tint stk[MAX], set[MAX];\n\tint size, top, count;\n\tpublic:\n\tSubSet()\n\t{\n\t\ttop = -1;\n\t\tcount = 0;\n\t}\n\tvoid getInfo(void);\n\tvoid push(int data);\n\tvoid pop(void);\n\tvoid display(void);\n\tint fnFindSubset(int pos, int sum);\n};\n\/******************************************************\n*Function\t: getInfo\n*Description: Function to read input\n*Input parameters: no parameters\n*RETURNS\t: no value\n******************************************************\/\nvoid SubSet :: getInfo(void)\n{\n\tint i;\n\tcout &lt;&lt; &quot;Enter the maximum number of elements : &quot;;\n\tcin &gt;&gt; size;\n\tcout &lt;&lt; &quot;Enter the values of the elements : n&quot;;\n\tfor (i=1; i&lt;=size; i++)\n\tcin &gt;&gt; set[i];\n}\n\/******************************************************\n*Function\t: push\n*Description: Function to push an element on to the stack\n*Input parameters:\n*int data\t- value to be pushed on to the stack\n*RETURNS\t: no value\n******************************************************\/\nvoid SubSet :: push(int data)\n{\n\tstk[++top] = data;\n}\n\/******************************************************\n*Function\t: pop\n*Description: Function to pop an element from the stack\n*Input parameters: no parameters\n*RETURNS\t: no value\n******************************************************\/\nvoid SubSet :: pop(void)\n{\n\ttop--;\n}\n\/******************************************************\n*Function\t: display\n*Description: Function to display solution to sub set sum problem\n*Input parameters: no parameters\n*RETURNS\t: no value\n******************************************************\/\nvoid SubSet :: display()\n{\n\tint i;\n\tcout &lt;&lt; &quot;nSOLUTION #&quot;&lt;&lt; ++count &lt;&lt;&quot; ISn{ &quot;;\n\tfor (i=0; i&lt;=top; i++)\n\t\tcout &lt;&lt; stk[i] &lt;&lt; &quot; &quot;;\n\tcout &lt;&lt; &quot;}&quot; &lt;&lt; endl;\n}\n\/******************************************************\n*Function\t: fnFindSubset\n*Description\t: Function to solve Subset sum problem.\n*Input parameters:\n*\tint pos\t- position\n*\tint sum\t- sum of elements\n*RETURNS\t: returns 1 if solution exists or zero otherwise\n******************************************************\/\nint SubSet :: fnFindSubset(int pos, int sum)\n{\n\tint i;\n\tstatic int foundSoln = 0;\n\tif (sum&gt;0)\n\t{\n\t\tfor (i=pos; i&lt;=size; i++)\n\t\t{\n\t\t\tpush(set[i]);\n\t\t\tfnFindSubset(i+1, sum - set[i]);\n\t\t\tpop();\n\t\t}\n\t}\n\tif (sum == 0)\n\t{\n\t\tdisplay();\n\t\tfoundSoln = 1;\n\t}\n\treturn foundSoln;\n}\n\/******************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t:\t0 on success\n******************************************************\/\nint main(void)\n{\n\tint sum;\n\tSubSet set1;\n\tset1.getInfo();\n\tcout &lt;&lt; &quot;Enter the sum value : &quot;;\n\tcin &gt;&gt; sum;\n\tcout &lt;&lt; endl;\n\tif (!set1.fnFindSubset(1, sum))\n\t\tcout &lt;&lt; &quot;nThe problem instance doesnt have any solution.&quot; &lt;&lt; endl;\n\telse\n\t\tcout &lt;&lt; &quot;nThe above-mentioned sets are the required solution to &quot; &lt;&lt;\n\t\t&quot;the given instance.&quot; &lt;&lt; endl;\n\treturn 0;\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 08SubSetSum.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to solve Subset sum problem.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iostream<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">namespace<\/span><span style=\"color: #E1E4E8\"> std;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ Constant definitions<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">const<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">int<\/span><span style=\"color: #E1E4E8\"> MAX <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ class definitions<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint stk[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">], <\/span><span style=\"color: #F97583\">set<\/span><span style=\"color: #E1E4E8\">[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint <\/span><span style=\"color: #FFAB70\">size<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #FFAB70\">top<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #FFAB70\">count<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #FFAB70\">public<\/span><span style=\"color: #F97583\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">top<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">count<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">getInfo<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">void<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">push<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">data<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">pop<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">void<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">display<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">void<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint <\/span><span style=\"color: #B392F0\">fnFindSubset<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #FFAB70\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">pos<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #FFAB70\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">sum<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: getInfo<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to read input<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">getInfo<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the maximum number of elements : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> size;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the values of the elements : <\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">size; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> set[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: push<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to push an element on to the stack<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*int data\t- value to be pushed on to the stack<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">push<\/span><span style=\"color: #E1E4E8\">(int data)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tstk[<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">top] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> data;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: pop<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to pop an element from the stack<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">pop<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ttop<\/span><span style=\"color: #F97583\">--<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: display<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to display solution to sub set sum problem<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">display<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">SOLUTION #&quot;<\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">count <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #9ECBFF\">&quot; IS<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">{ &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">top; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> stk[i] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;}&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnFindSubset<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to solve Subset sum problem.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint pos\t- position<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint sum\t- sum of elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: returns 1 if solution exists or zero otherwise<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">fnFindSubset<\/span><span style=\"color: #E1E4E8\">(int pos, int sum)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tstatic int foundSoln <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (sum<\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">pos; i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">size; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">push<\/span><span style=\"color: #E1E4E8\">(set[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">fnFindSubset<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, sum <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> set[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #B392F0\">pop<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (sum <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">display<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tfoundSoln <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> foundSoln;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint sum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tSubSet set1;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tset1.<\/span><span style=\"color: #B392F0\">getInfo<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the sum value : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> sum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">!<\/span><span style=\"color: #E1E4E8\">set1.<\/span><span style=\"color: #B392F0\">fnFindSubset<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, sum))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">The problem instance doesnt have any solution.&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">The above-mentioned sets are the required solution to &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #9ECBFF\">&quot;the given instance.&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#1E1E1E\"><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=\"\/******************************************************\n*File\t\t: 08SubSetSum.c\n*Description: Program to solve Subset sum problem.\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************\/#include&lt;stdio.h&gt;\nint subset(int n,int d,int values[]);\nint main()\n{\n\tint n,d,i,values[10];\n\tprintf(&quot;Enter the number of elements : &quot;);\n\tscanf(&quot;%d&quot;,&amp;n);\n\tprintf(&quot;Enter the values of the elements (in ascending order) : n&quot;);\n\tfor(i=1;i&lt;=n;i++)\n\t\tscanf(&quot;%d&quot;,&amp;values[i]);\n\tprintf(&quot;Enter the sum value : &quot;);\n\tscanf(&quot;%d&quot;,&amp;d);\n\tprintf(&quot;n&quot;);\n\tif (!subset(n,d,values))\n\t\tprintf(&quot;nThe problem instance doesnt have any solution.n&quot;);\n\telse\n\t\tprintf(&quot;nThe above-mentioned sets are the required solution to the given instance.n&quot;);\n\treturn 0;\n}\nint subset(int n,int d,int values[])\n{\n\tint sum,k,i,included[10];\n\tstatic int foundSoln = 0;\n\tstatic int count = 0;\n\tfor(i=1;i&lt;=n;i++)\n\t\tincluded[i] = 0;\n\tsum = 0;\n\tk = 1;\n\tincluded[k] = 1;\n\twhile(1)\n\t{\n\t\tif(k &lt;= n &amp;&amp; included[k] == 1)\n\t\t{\n\t\t\tif(sum + values[k] == d)\n\t\t\t{\t\n\t\t\t\tfoundSoln = 1;\n\t\t\t\t++count;\n\t\t\t\tprintf(&quot;SOLUTION #%d IS n{ &quot;, count);\n\t\t\t\tfor(i=1;i&lt;=n;i++)\n\t\t\t\t{\n\t\t\t\t\tif(included[i] == 1)\n\t\t\t\t\t\tprintf(&quot;%d &quot;,values[i]);\n\t\t\t\t}\n\t\t\t\tprintf(&quot; }nn&quot;);\n\t\t\t\tincluded[k] = 0;\n\t\t\t}\n\t\t\telse if(sum + values[k] &lt; d)\n\t\t\t\tsum += values[k];\n\t\t\telse\n\t\t\t\tincluded[k] = 0;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tk--;\n\t\t\twhile(k&gt;0 &amp;&amp; included[k] == 0)\n\t\t\t{\n\t\t\t\tk--;\n\t\t\t}\n\t\t\tif(k == 0)\n\t\t\t\tbreak;\n\t\t\tincluded[k] = 0;\n\t\t\tsum = sum - values[k];\n\t\t}\n\t\tk = k+1;\n\t\tincluded[k] = 1;\n\t}\n\treturn foundSoln;\n}\n\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t: 08SubSetSum.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Program to solve Subset sum problem.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><span style=\"color: #D4D4D4\">#include&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">subset<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">d<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> n,d,i,<\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Enter the number of elements : &quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Enter the values of the elements (in ascending order) : <\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;i&lt;=n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;<\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Enter the sum value : &quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;d);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (!<\/span><span style=\"color: #DCDCAA\">subset<\/span><span style=\"color: #D4D4D4\">(n,d,values))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">The problem instance doesnt have any solution.<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">The above-mentioned sets are the required solution to the given instance.<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">subset<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">d<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> sum,k,i,<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">static<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> foundSoln = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">static<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> count = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;i&lt;=n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[i] = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tsum = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tk = <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] = <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(k &lt;= n &amp;&amp; <\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] == <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(sum + <\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[k] == d)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t{\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tfoundSoln = <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t++count;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;SOLUTION #<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\"> IS <\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">{ &quot;<\/span><span style=\"color: #D4D4D4\">, count);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;i&lt;=n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[i] == <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\"> &quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot; }<\/span><span style=\"color: #D7BA7D\">nn<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">else<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(sum + <\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[k] &lt; d)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tsum += <\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[k];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\tk--;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(k&gt;<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\"> &amp;&amp; <\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] == <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tk--;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(k == <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] = <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\tsum = sum - <\/span><span style=\"color: #9CDCFE\">values<\/span><span style=\"color: #D4D4D4\">[k];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tk = k+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">included<\/span><span style=\"color: #D4D4D4\">[k] = <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> foundSoln;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"Enter the number of elements : 5\nEnter the values of the elements (in ascending order) : \n1 2 5 6 8\nEnter the sum value : 9\nSOLUTION #1 IS\n{ 1 2 6 }\nSOLUTION #2 IS\n{ 1 8 }\nThe above-mentioned sets are the required solution to the given instance.\n#########################################################################\nEnter the number of elements : 3\nEnter the values of the elements (in ascending order) : \n1 3 5\nEnter the sum value : 7\nThe problem instance doesnt have any solution.\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">elements<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the values <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> the <\/span><span style=\"color: #B392F0\">elements<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> ascending order) : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">8<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the sum <\/span><span style=\"color: #B392F0\">value<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">9<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">SOLUTION<\/span><span style=\"color: #E1E4E8\"> #<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">IS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{ <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">SOLUTION<\/span><span style=\"color: #E1E4E8\"> #<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">IS<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{ <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">8<\/span><span style=\"color: #E1E4E8\"> }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The above<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">mentioned sets are the required solution to the given instance.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#########################################################################<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">elements<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the values <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> the <\/span><span style=\"color: #B392F0\">elements<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> ascending order) : <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the sum <\/span><span style=\"color: #B392F0\">value<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">7<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The problem instance doesnt have any solution.<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P09\">Program 09<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Selection Sort<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to sort a given set of n integer elements using Selection Sort method and compute its time complexity. Run the program for varied values of n&gt; 5000 and record the time taken to sort. Plot a graph of the time taken versus n. The elements can be read from a file or can be generated using the random number generator.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t\t: 09SelectionSort.cpp\n*Description\t: Program to sort an array using Selection Sort\n*Author\t\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;fstream&gt;\n#include &lt;iomanip&gt;\n#include &lt;vector&gt;\n#include &lt;ctime&gt;\n#include &lt;cstdlib&gt;\nusing namespace std;\nclass SelectionSort{\n    vector &lt;int&gt; numList;\n    int iNum;\n    public:\n    void fnGenRandArray(int);\n    void fnSelectionSort();\n    void fnDispArray();\n    void fnSwap(int&amp;, int&amp;);\n};\nint main( int argc, char **argv)\n{\n    struct timespec tv;\n    int iChoice, i, iNum;\n    double dStart, dEnd;\n    SelectionSort myListObj;\n\tofstream fout(&quot;SelectionPlot.dat&quot;, ios::out);\n    for(;;)\n    {\n        cout &lt;&lt; &quot;n1.Selection Sortn2.Plot the Graphn3.Exit&quot; ;\n        cout &lt;&lt; &quot;nEnter your choicen&quot;;\n        cin &gt;&gt; iChoice;\n        switch(iChoice)\n        {\n            case 1:\n                    cout &lt;&lt; &quot;nEnter number of elements to sort : &quot;; cin &gt;&gt; iNum;\n                    myListObj.fnGenRandArray(iNum);\n                    cout &lt;&lt; &quot;nUnsorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray();\n                    myListObj.fnSelectionSort();\n                    cout &lt;&lt; &quot;nSorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray();\n                    break;\n            case 2: for(i=100;i&lt;20000;i+=100)\n                    {\n                        myListObj.fnGenRandArray(i);\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dStart = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n                        myListObj.fnSelectionSort();\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dEnd = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n                        fout &lt;&lt; i &lt;&lt; &quot;t&quot; &lt;&lt; setprecision(10) &lt;&lt; dEnd - dStart &lt;&lt; endl;\n                    }\n                    cout &lt;&lt; &quot;nData File generated and stored in file &lt; SelectionPlot.dat &gt;.n Use a plotting utilityn&quot;;\n                    break;\n            case 3:\n                    exit(0);\n        }\n    }\n    fout.close();\n    return 0;\n}\n\/******************************************************************************\n*Function: fnSelectionSort\n*Description: Function to sort elements in an iaArray using Quick Sort\n*Function parameters:\n*\tint n - number of elements to be sorted\n******************************************************************************\/\nvoid SelectionSort :: fnSelectionSort()\n{\n\tint i, j, min_idx;\n    \/\/ One by one move boundary of unsorted subarray\n    for (i = 0; i &lt; iNum-1; i++) {\n        \/\/ Find the minimum element in unsorted array\n        min_idx = i;\n        for (j = i+1; j &lt; iNum; j++) {\n            if (numList[j] &lt; numList[min_idx])\n                min_idx = j;\n        }\n        \/\/ Swap the found minimum element with the first element\n        fnSwap(numList[min_idx], numList[i]);\n    }\n}\nvoid SelectionSort::fnGenRandArray(int n)\n{\n    int i, iVal;\n\tnumList.clear();\n\tsrand(time(NULL));\n\tfor(i=0;i&lt;n;i++)\n\t{\n        iVal = rand()%10000;\n        numList.push_back(iVal);\n\t}\n\tiNum = n;\n}\nvoid SelectionSort::fnDispArray()\n{\n    int i;\n\tfor(i=0;i&lt;iNum;i++)\n\t{\n        cout &lt;&lt; setw(8) &lt;&lt; numList[i] &lt;&lt; endl;\n    }\n}\nvoid SelectionSort::fnSwap(int &amp;a,int &amp;b)\n{\n\tint t;\n\tt = a;\n\ta = b;\n\tb = t;\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t\t: 09SelectionSort.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to sort an array using Selection Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;fstream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iomanip&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;ctime&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;cstdlib&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SelectionSort<\/span><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    vector <\/span><span style=\"color: #F97583\">&lt;int&gt;<\/span><span style=\"color: #E1E4E8\"> numList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int&amp;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int&amp;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">timespec<\/span><span style=\"color: #E1E4E8\"> tv;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iChoice, i, iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">double<\/span><span style=\"color: #E1E4E8\"> dStart, dEnd;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    SelectionSort myListObj;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tofstream <\/span><span style=\"color: #B392F0\">fout<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;SelectionPlot.dat&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #B392F0\">ios<\/span><span style=\"color: #E1E4E8\">::out);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(;;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">1.Selection Sort<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">2.Plot the Graph<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">3.Exit&quot;<\/span><span style=\"color: #E1E4E8\"> ;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter your choice<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iChoice;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">switch<\/span><span style=\"color: #E1E4E8\">(iChoice)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter number of elements to sort : &quot;<\/span><span style=\"color: #E1E4E8\">; cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Unsorted Array&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Sorted Array&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #79B8FF\">20000<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        <\/span><span style=\"color: #B392F0\">clock_gettime<\/span><span style=\"color: #E1E4E8\">(CLOCK_REALTIME, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        dStart <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> tv.tv_nsec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000000.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        <\/span><span style=\"color: #B392F0\">clock_gettime<\/span><span style=\"color: #E1E4E8\">(CLOCK_REALTIME, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        dEnd <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> tv.tv_nsec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000000.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        fout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setprecision<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> dEnd <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> dStart <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; SelectionPlot.dat &gt;.<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\"> Use a plotting utility<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">exit<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    fout.<\/span><span style=\"color: #B392F0\">close<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function: fnSelectionSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to sort elements in an iaArray using Quick Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n - number of elements to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SelectionSort<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, min_idx;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">    \/\/ One by one move boundary of unsorted subarray<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> iNum<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">        \/\/ Find the minimum element in unsorted array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        min_idx <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; j <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> iNum; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (numList[j] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> numList[min_idx])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                min_idx <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">        \/\/ Swap the found minimum element with the first element<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(numList[min_idx], numList[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SelectionSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, iVal;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tnumList.<\/span><span style=\"color: #B392F0\">clear<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">srand<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">time<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        iVal <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">rand<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">%<\/span><span style=\"color: #79B8FF\">10000<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(iVal);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tiNum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SelectionSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">8<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> numList[i] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SelectionSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">b<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> t;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tt <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> a;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> b;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tb <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> t;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/********************************************************************************\n*File\t\t: 09SelectionSort.c\n*Description\t: Program to sort an array using Selection Sort\n*Author\t\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;sys\/time.h&gt;\n#include &lt;time.h&gt;\nvoid fnGenRandInput(int [], int);\nvoid fnDispArray( int [], int);\nvoid fnSelectionSort(int [], int);\n\/******************************************************************************\n*Function\t: main\n*Function parameters:\n*\tint argc - no of commamd line arguments\n*\tchar **argv - vector to store command line argumennts\n*RETURNS\t:\t0 on success\n******************************************************************************\/\nint main( int argc, char **argv)\n{\n\tFILE *fp;\n\tstruct timeval tv;\n\tdouble dStart,dEnd;\n\tint iaArr[500000],iNum,i,iChoice;\n    for(;;)\n    {\n        printf(&quot;n1.Plot the Graphn2.Selection Sortn3.Exit&quot;);\n        printf(&quot;nEnter your choicen&quot;);\n        scanf(&quot;%d&quot;,&amp;iChoice);\n        switch(iChoice)\n        {\n            case 1:\n                fp = fopen(&quot;SelectionPlot.dat&quot;,&quot;w&quot;);\n                for(i=100;i&lt;20000;i+=100)\n                {\n                    fnGenRandInput(iaArr,i);\n                    gettimeofday(&amp;tv,NULL);\n                    dStart = tv.tv_sec + (tv.tv_usec\/1000000.0);\n                    fnSelectionSort(iaArr,i);\n                    gettimeofday(&amp;tv,NULL);\n                    dEnd = tv.tv_sec + (tv.tv_usec\/1000000.0);\n                    fprintf(fp,&quot;%dt%lfn&quot;,i,dEnd-dStart);\n                }\n                fclose(fp);\n                printf(&quot;nData File generated and stored in file &lt; SelectionPlot.dat &gt;.n Use a plotting utilityn&quot;);\n            break;\n            case 2:\n                printf(&quot;nEnter the number of elements to sortn&quot;);\n                scanf(&quot;%d&quot;,&amp;iNum);\n                printf(&quot;nUnsorted Arrayn&quot;);\n                fnGenRandInput(iaArr,iNum);\n                fnDispArray(iaArr,iNum);\n                fnSelectionSort(iaArr,iNum);\n                printf(&quot;nSorted Arrayn&quot;);\n                fnDispArray(iaArr,iNum);\n            break;\n            case 3:\n                exit(0);\n        }\n    }\n\treturn 0;\n}\n\/******************************************************************************\n*Function\t: GenRandInput\n*Description\t: Function to generate a fixed number of random elements\n*Function parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t:no return value\n******************************************************************************\/\nvoid fnGenRandInput(int X[], int n)\n{\n\tint i;\n\tsrand(time(NULL));\n\tfor(i=0;i&lt;n;i++)\n\t{\n\t\tX[i] = rand()%10000;\n\t}\n}\n\/******************************************************************************\n*Function\t: DispArray\n*Description\t: Function to display elements of an array\n*Function parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t: no return value\n******************************************************************************\/\nvoid fnDispArray( int X[], int n)\n{\n\tint i;\n\tfor(i=0;i&lt;n;i++)\n\t\tprintf(&quot; %5d n&quot;,X[i]);\n}\n\/******************************************************************************\n*Function\t: fnSelectionSort\n*Description\t: Function to sort elements in an array using Selection Sort\n*Input parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t: no return value\n******************************************************************************\/\nvoid fnSelectionSort(int X[], int n)\n{\n\tint i,j,iTemp,iMin;\n\tfor(i=0;i&lt;n;i++)\n\t{\n\t\tiMin = i;\n\t\tfor(j = i+1;j&lt;n;j++)\n\t\t{\n\t\t\tif(X[j] &lt; X[iMin])\n\t\t\t\tiMin = j;\n\t\t}\n\t\tiTemp = X[i];\n\t\tX[i] = X[iMin];\n\t\tX[iMin] = iTemp;\n\t}\n}\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/********************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t: 09SelectionSort.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to sort an array using Selection Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;sys\/time.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;time.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> [], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tchar **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tFILE <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">fp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">timeval<\/span><span style=\"color: #E1E4E8\"> tv;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">double<\/span><span style=\"color: #E1E4E8\"> dStart,dEnd;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iaArr[<\/span><span style=\"color: #79B8FF\">500000<\/span><span style=\"color: #E1E4E8\">],iNum,i,iChoice;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(;;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">1.Plot the Graph<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">2.Selection Sort<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">3.Exit&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter your choice<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">iChoice);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">switch<\/span><span style=\"color: #E1E4E8\">(iChoice)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                fp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fopen<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;SelectionPlot.dat&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #9ECBFF\">&quot;w&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #79B8FF\">20000<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(iaArr,i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">gettimeofday<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv,<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    dStart <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> (tv.tv_usec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000.0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">(iaArr,i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">gettimeofday<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv,<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    dEnd <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> (tv.tv_usec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000.0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">fprintf<\/span><span style=\"color: #E1E4E8\">(fp,<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%dt%lfn<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,i,dEnd<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">dStart);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fclose<\/span><span style=\"color: #E1E4E8\">(fp);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; SelectionPlot.dat &gt;.<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\"> Use a plotting utility<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the number of elements to sort<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Unsorted Array<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Sorted Array<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">exit<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: GenRandInput<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to generate a fixed number of random elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">srand<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">time<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tX[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">rand<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">%<\/span><span style=\"color: #79B8FF\">10000<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: DispArray<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to display elements of an array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot; <\/span><span style=\"color: #79B8FF\">%5d<\/span><span style=\"color: #9ECBFF\"> <\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,X[i]);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: fnSelectionSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to sort elements in an array using Selection Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSelectionSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j,iTemp,iMin;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tiMin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(X[j] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> X[iMin])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tiMin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tiTemp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> X[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tX[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> X[iMin];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tX[iMin] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> iTemp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Plotting using Gnuplot Utility<\/h3>\n\n\n\n<p><strong><a href=\"http:\/\/www.gnuplot.info\/\" target=\"_blank\" rel=\"noopener\" title=\"Gnuplot\">Gnuplot<\/a><\/strong> is one of the popular tools used for plotting. You can install using the following command on Ubuntu.<\/p>\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:#24292e\"><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=\"$ sudo apt install gnuplot\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">$ sudo apt install gnuplot<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>After executing option 2 in the program output we see that a file <strong>SelectPlot.dat<\/strong> was created in your local folder which contains running times for various input sizes. The first column specifies the input size and the second specifies the running time in microseconds.<\/p>\n\n\n\n<p><strong>Contents of SelectPlot.dat<\/strong><\/p>\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:#24292e\"><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=\"$ head SelectionPlot.dat \n100\t2.956390381e-05\n200\t0.0001039505005\n300\t0.0002217292786\n400\t0.0004942417145\n500\t0.0006952285767\n600\t0.000981092453\n700\t0.001403331757\n800\t0.001530170441\n900\t0.001908540726\n1000\t0.002341508865\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">$ head SelectionPlot.dat <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2.956390381e-05<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">200<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0001039505005<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">300<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0002217292786<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">400<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0004942417145<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">500<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0006952285767<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">600<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.000981092453<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">700<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.001403331757<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">800<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.001530170441<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">900<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.001908540726<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1000<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.002341508865<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Plotting Script for Gnuplot<\/h3>\n\n\n\n<p>We will now see how to generate a plot graph of data contained in <strong>SelectPlot.dat<\/strong> and store it as an image. For that let&#8217;s write a gnuplot script file called <strong>01SelectPlot.gpl<\/strong>. The contents of which are shown below<\/p>\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:#1E1E1E\"><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=\"# Gnuplot script file for plotting data in file &quot;SelectionPlot.dat&quot;\n# This file is called 09SelectPlot.gpl\nset terminal png font arial\nset title &quot;Time Complexity for Selection Sort&quot;\nset autoscale\nset xlabel &quot;Size of Input&quot;\nset ylabel &quot;Sorting Time (microseconds)&quot;\nset grid\nset output &quot;SelectionPlot.png&quot;\nplot &quot;SelectionPlot.dat&quot; t 'Selection Sort' with lines\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\"># Gnuplot script file for plotting data in file &quot;SelectionPlot.dat&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># This file is called 09SelectPlot.gpl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> terminal<\/span><span style=\"color: #D4D4D4\"> png font arial<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> title<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Time Complexity for Selection Sort&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> autoscale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> xlabel<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Size of Input&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> ylabel<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Sorting Time (microseconds)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> grid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> output<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;SelectionPlot.png&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">plot<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;SelectionPlot.dat&quot;<\/span><span style=\"color: #D4D4D4\"> t <\/span><span style=\"color: #CE9178\">&#39;Selection Sort&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">with<\/span><span style=\"color: #D4D4D4\"> lines<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>The above file illustrates how to set various properties in the plot using the <strong>set<\/strong> command. Observe that the last line in the script generates the graph using <strong>plot<\/strong> command. <\/p>\n\n\n\n<p>To execute the Gnuplot script you have to give the following command:<\/p>\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:#24292e\"><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=\"$ gnuplot 01SelectPlot.gpl\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">$ gnuplot 01SelectPlot.gpl<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>You can now see that an image file by name <strong>SelectPlot.png<\/strong> containing the graph will be created in your local folder. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/SelectionPlot.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"640\" height=\"480\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/SelectionPlot.png?resize=640%2C480&#038;ssl=1\" alt=\"\" class=\"wp-image-1984 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/SelectionPlot.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/SelectionPlot.png?resize=300%2C225&amp;ssl=1 300w\" data-sizes=\"(max-width: 640px) 100vw, 640px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 640px; --smush-placeholder-aspect-ratio: 640\/480;\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Plot of Selection Sort<\/strong><\/figcaption><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"1.Selection Sort\n2.Plot the Graph\n3.Exit\nEnter your choice\n1\nEnter number of elements to sort : 5\nUnsorted Array\n    6976\n    1561\n    4417\n     544\n    3179\nSorted Array\n     544\n    1561\n    3179\n    4417\n    6976\n1.Selection Sort\n2.Plot the Graph\n3.Exit\nEnter your choice\n2\nData File generated and stored in file &lt; SelectionPlot.dat &gt;.\n Use a plotting utility\n1.Selection Sort\n2.Plot the Graph\n3.Exit\nEnter your choice\n3\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">1.Selection Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">2.Plot the Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter your choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> elements to <\/span><span style=\"color: #B392F0\">sort<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Unsorted Array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">6976<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">1561<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4417<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">544<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">3179<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Sorted Array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">544<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">1561<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">3179<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4417<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">6976<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">1.Selection Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">2.Plot the Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter your choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Data File generated and stored <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> file <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> SelectionPlot.dat <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> Use a plotting utility<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">1.Selection Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">2.Plot the Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter your choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Time Complexity Analysis<\/h3>\n\n\n\n<p>Worst Case &#8211; <strong>O(n<sup>2<\/sup>)<\/strong><\/p>\n\n\n\n<p>Average Case &#8211; <strong>O(n<sup>2<\/sup>)<\/strong><\/p>\n\n\n\n<p>Best Case &#8211; <strong>O(n<sup>2<\/sup>)<\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P10\">Program 10<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Quick Sort<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to sort a given set of n integer elements using Quick Sort method and compute its time complexity. Run the program for varied values of n&gt; 5000 and record the time taken to sort. Plot a graph of the time taken versus n. The elements can be read from a file or can be generated using the random number generator.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t\t: 10QuickSort.cpp\n*Description\t: Program to sort an array using Quick Sort\n*Author\t\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;fstream&gt;\n#include &lt;iomanip&gt;\n#include &lt;vector&gt;\n#include &lt;ctime&gt;\n#include &lt;cstdlib&gt;\nusing namespace std;\nclass QuickSort{\n    vector &lt;int&gt; numList;\n    int iNum;\n    public:\n    void fnGenRandArray(int);\n    void fnQuickSort(int, int);\n    void fnDispArray();\n    int fnPartition(int ,int);\n    void fnSwap(int&amp;, int&amp;);\n};\nint main( int argc, char **argv)\n{\n    struct timespec tv;\n    int iChoice, i, iNum;\n    double dStart, dEnd;\n    QuickSort myListObj;\n\tofstream fout(&quot;QuickPlot.dat&quot;, ios::out);\n    for(;;)\n    {\n        cout &lt;&lt; &quot;n1.Quick Sortn2.Plot the Graphn3.Exit&quot; ;\n        cout &lt;&lt; &quot;nEnter your choicen&quot;;\n        cin &gt;&gt; iChoice;\n        switch(iChoice)\n        {\n            case 1:\n                    cout &lt;&lt; &quot;nEnter number of elements to sort : &quot;; cin &gt;&gt; iNum;\n                    myListObj.fnGenRandArray(iNum);\n                    cout &lt;&lt; &quot;nUnsorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray();\n                    myListObj.fnQuickSort(0,iNum-1);\n                    cout &lt;&lt; &quot;nSorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray();\n                    break;\n            case 2: for(i=100;i&lt;100000;i+=100)\n                    {\n                        myListObj.fnGenRandArray(i);\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dStart = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n                        myListObj.fnQuickSort(0,i-1);\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dEnd = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n                        fout &lt;&lt; i &lt;&lt; &quot;t&quot; &lt;&lt; setprecision(10) &lt;&lt; dEnd - dStart &lt;&lt; endl;\n                    }\n                    cout &lt;&lt; &quot;nData File generated and stored in file &lt; QuickPlot.dat &gt;.n Use a plotting utilityn&quot;;\n                    break;\n            case 3:\n                    exit(0);\n        }\n    }\n    fout.close();\n    return 0;\n}\n\/******************************************************************************\n*Function: fnPartition\n*Description: Function to partition an iaArray using First element as Pivot\n*Function parameters:\n*\tint l - start index of the subiaArray to be sorted\n*\tint r - end index of the subiaArray to be sorted\n*RETURNS: integer value specifying the location of partition\n******************************************************************************\/\nint QuickSort :: fnPartition(int l, int r)\n{\n\tint i,j;\n\tint p;\n\tp = numList[l];\n\ti = l;\n\tj = r+1;\n\tdo\n\t{\n\t\tdo { i++; } while (numList[i] &lt; p);\n\t\tdo { j--; } while (numList[j] &gt; p);\n\t\tfnSwap(numList[i], numList[j]);\n\t}while (i&lt;j);\n\tfnSwap(numList[i], numList[j]);\n\tfnSwap(numList[l], numList[j]);\n\treturn j;\n}\n\/******************************************************************************\n*Function: fnQuickSort\n*Description: Function to sort elements in an iaArray using Quick Sort\n*Function parameters:\n*\tint l - start index of the subiaArray to be sorted\n*\tint r - end index of the subiaArray to be sorted*RETURNS\t: no value\n******************************************************************************\/\nvoid QuickSort :: fnQuickSort(int l, int r)\n{\n\tint s;\n\tif (l &lt; r)\n\t{\n\t\ts = fnPartition(l, r);\n\t\tfnQuickSort(l, s-1);\n\t\tfnQuickSort(s+1, r);\n\t}\n}\nvoid QuickSort::fnGenRandArray(int n)\n{\n    int i, iVal;\n\tnumList.clear();\n\tsrand(time(NULL));\n\tfor(i=0;i&lt;n;i++)\n\t{\n        iVal = rand()%10000;\n        numList.push_back(iVal);\n\t}\n\tiNum = n;\n}\nvoid QuickSort::fnDispArray()\n{\n    int i;\n\tfor(i=0;i&lt;iNum;i++)\n\t{\n        cout &lt;&lt; setw(8) &lt;&lt; numList[i] &lt;&lt; endl;\n    }\n}\nvoid QuickSort::fnSwap(int &amp;a,int &amp;b)\n{\n\tint t;\n\tt = a;\n\ta = b;\n\tb = t;\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t\t: 10QuickSort.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to sort an array using Quick Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;fstream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;iomanip&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;ctime&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;cstdlib&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    vector <\/span><span style=\"color: #F97583\">&lt;int&gt;<\/span><span style=\"color: #E1E4E8\"> numList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPartition<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> ,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int&amp;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int&amp;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">timespec<\/span><span style=\"color: #E1E4E8\"> tv;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iChoice, i, iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">double<\/span><span style=\"color: #E1E4E8\"> dStart, dEnd;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    QuickSort myListObj;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tofstream <\/span><span style=\"color: #B392F0\">fout<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;QuickPlot.dat&quot;<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #B392F0\">ios<\/span><span style=\"color: #E1E4E8\">::out);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(;;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">1.Quick Sort<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">2.Plot the Graph<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">3.Exit&quot;<\/span><span style=\"color: #E1E4E8\"> ;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter your choice<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iChoice;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">switch<\/span><span style=\"color: #E1E4E8\">(iChoice)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter number of elements to sort : &quot;<\/span><span style=\"color: #E1E4E8\">; cin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Unsorted Array&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,iNum<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Sorted Array&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #79B8FF\">100000<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        <\/span><span style=\"color: #B392F0\">clock_gettime<\/span><span style=\"color: #E1E4E8\">(CLOCK_REALTIME, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        dStart <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> tv.tv_nsec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000000.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,i<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        <\/span><span style=\"color: #B392F0\">clock_gettime<\/span><span style=\"color: #E1E4E8\">(CLOCK_REALTIME, <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        dEnd <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> tv.tv_nsec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000000.0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        fout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setprecision<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> dEnd <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> dStart <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; QuickPlot.dat &gt;.<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\"> Use a plotting utility<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">exit<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    fout.<\/span><span style=\"color: #B392F0\">close<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function: fnPartition<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to partition an iaArray using First element as Pivot<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint l - start index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint r - end index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*<\/span><span style=\"color: #F97583\">RETURNS:<\/span><span style=\"color: #6A737D\"> integer value specifying the location of partition<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">fnPartition<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">l<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">r<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> p;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> numList[l];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> l;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tj <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> r<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">do<\/span><span style=\"color: #E1E4E8\"> { i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">; } <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (numList[i] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> p);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">do<\/span><span style=\"color: #E1E4E8\"> { j<\/span><span style=\"color: #F97583\">--<\/span><span style=\"color: #E1E4E8\">; } <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (numList[j] <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\"> p);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(numList[i], numList[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">j);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(numList[i], numList[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(numList[l], numList[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function: fnQuickSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to sort elements in an iaArray using Quick Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint l - start index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint r - end index of the subiaArray to be sorted*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\"> :: <\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">l<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">r<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> s;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (l <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> r)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ts <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPartition<\/span><span style=\"color: #E1E4E8\">(l, r);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(l, s<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(s<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, r);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, iVal;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tnumList.<\/span><span style=\"color: #B392F0\">clear<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">srand<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">time<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        iVal <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">rand<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">%<\/span><span style=\"color: #79B8FF\">10000<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(iVal);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tiNum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">setw<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">8<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> numList[i] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">b<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> t;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tt <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> a;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> b;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tb <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> t;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#24292e\"><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=\"\/******************************************************************************\n*File\t\t\t: 10QuickSort.c\n*Description\t: Program to sort an array using Quick Sort\n*Author\t\t\t: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;sys\/time.h&gt;\n#include &lt;time.h&gt;\n\nvoid fnGenRandInput(int [], int);\nvoid fnDispArray( int [], int);\nint fnPartition(int [], int , int);\nvoid fnQuickSort(int [], int , int);\nvoid fnSwap(int*, int*);\n\nvoid fnSwap(int *a, int *b)\n{\n\tint t = *a; *a = *b; *b = t;\n}\n\n\/******************************************************************************\n*Function\t: main\n*Function parameters:\n*\tint argc - no of commamd line arguments\n*\tchar **argv - vector to store command line argumennts\n*RETURNS\t:\t0 on success\n******************************************************************************\/\n\nint main( int argc, char **argv)\n{\n\tFILE *fp;\n\tstruct timeval tv;\n\tdouble dStart,dEnd;\n\tint iaArr[500000],iNum,i,iChoice;\n\n    for(;;)\n    {\n        printf(&quot;\\n1.Plot the Graph\\n2.QuickSort\\n3.Exit&quot;);\n        printf(&quot;\\nEnter your choice\\n&quot;);\n        scanf(&quot;%d&quot;,&amp;iChoice);\n        switch(iChoice)\n        {\n            case 1:\n                fp = fopen(&quot;QuickPlot.dat&quot;,&quot;w&quot;);\n\n                for(i=100;i&lt;100000;i+=100)\n                {\n                    fnGenRandInput(iaArr,i);\n                    gettimeofday(&amp;tv,NULL);\n                    dStart = tv.tv_sec + (tv.tv_usec\/1000000.0);\n                    fnQuickSort(iaArr,0,i-1);\n                    gettimeofday(&amp;tv,NULL);\n                    dEnd = tv.tv_sec + (tv.tv_usec\/1000000.0);\n                    fprintf(fp,&quot;%d\\t%lf\\n&quot;,i,dEnd-dStart);\n                }\n                fclose(fp);\n                printf(&quot;\\nData File generated and stored in file &lt; QuickPlot.dat &gt;.\\n Use a plotting utility\\n&quot;);\n            break;\n\n            case 2:\n                printf(&quot;\\nEnter the number of elements to sort\\n&quot;);\n                scanf(&quot;%d&quot;,&amp;iNum);\n                printf(&quot;\\nUnsorted Array\\n&quot;);\n                fnGenRandInput(iaArr,iNum);\n                fnDispArray(iaArr,iNum);\n                fnQuickSort(iaArr,0,iNum-1);\n                printf(&quot;\\nSorted Array\\n&quot;);\n                fnDispArray(iaArr,iNum);\n            break;\n\n            case 3:\n                exit(0);\n        }\n    }\n\treturn 0;\n}\n\n\/******************************************************************************\n*Function: fnPartition\n*Description: Function to partition an iaArray using First element as Pivot\n*Function parameters:\n*\tint a[] - iaArray to hold integers\n*\tint l - start index of the subiaArray to be sorted\n*\tint r - end index of the subiaArray to be sorted\n*RETURNS: integer value specifying the location of partition\n******************************************************************************\/\nint fnPartition(int a[], int l, int r)\n{\n\tint i,j;\n\tint p;\n\tp = a[l];\n\ti = l;\n\tj = r+1;\n\tdo\n\t{\n\t\tdo { i++; } while (a[i] &lt; p);\n\t\tdo { j--; } while (a[j] &gt; p);\n\t\tfnSwap(&amp;a[i], &amp;a[j]);\n\t}while (i&lt;j);\n\tfnSwap(&amp;a[i], &amp;a[j]);\n\tfnSwap(&amp;a[l], &amp;a[j]);\n\treturn j;\n}\n\n\/******************************************************************************\n*Function: fnQuickSort\n*Description: Function to sort elements in an iaArray using Quick Sort\n*Function parameters:\n*\tint a[] - iaArray to hold integers\n*\tint l - start index of the subiaArray to be sorted\n*\tint r - end index of the subiaArray to be sorted*RETURNS\t: no value\n******************************************************************************\/\nvoid fnQuickSort(int a[], int l, int r)\n{\n\tint s;\n\tif (l &lt; r)\n\t{\n\t\ts = fnPartition(a, l, r);\n\t\tfnQuickSort(a, l, s-1);\n\t\tfnQuickSort(a, s+1, r);\n\t}\n}\n\n\/******************************************************************************\n*Function\t: GenRandInput\n*Description\t: Function to generate a fixed number of random elements\n*Function parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t:no return value\n******************************************************************************\/\nvoid fnGenRandInput(int X[], int n)\n{\n\tsrand(time(NULL));\n\tfor(int i=0;i&lt;n;i++)\n\t{\n\t\tX[i] = rand()%10000;\n\t}\n}\n\n\/******************************************************************************\n*Function\t: DispArray\n*Description\t: Function to display elements of an array\n*Function parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t: no return value\n******************************************************************************\/\nvoid fnDispArray( int X[], int n)\n{\n\tfor(int i=0;i&lt;n;i++)\n\t\tprintf(&quot; %5d \\n&quot;,X[i]);\n}\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*File\t\t\t: 10QuickSort.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to sort an array using Quick Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author\t\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;sys\/time.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;time.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPartition<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> , <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> , <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int*<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int*<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #FFAB70\">b<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> t <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">a; <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">a <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">b; <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">b <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> t;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tchar **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">argc<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">char<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">**<\/span><span style=\"color: #FFAB70\">argv<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tFILE <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">fp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">struct<\/span><span style=\"color: #E1E4E8\"> timeval tv;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">double<\/span><span style=\"color: #E1E4E8\"> dStart,dEnd;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">iaArr<\/span><span style=\"color: #E1E4E8\">[<\/span><span style=\"color: #79B8FF\">500000<\/span><span style=\"color: #E1E4E8\">],iNum,i,iChoice;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(;;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">1.Plot the Graph<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">2.QuickSort<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">3.Exit&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Enter your choice<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">iChoice);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">switch<\/span><span style=\"color: #E1E4E8\">(iChoice)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                fp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fopen<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;QuickPlot.dat&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #9ECBFF\">&quot;w&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #79B8FF\">100000<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(iaArr,i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">gettimeofday<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv,<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    dStart <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> (tv.tv_usec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000.0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(iaArr,<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,i<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">gettimeofday<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #E1E4E8\">tv,<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    dEnd <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> tv.tv_sec <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> (tv.tv_usec<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">1000000.0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #B392F0\">fprintf<\/span><span style=\"color: #E1E4E8\">(fp,<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d\\t%lf\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,i,dEnd<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\">dStart);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fclose<\/span><span style=\"color: #E1E4E8\">(fp);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; QuickPlot.dat &gt;.<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\"> Use a plotting utility<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Enter the number of elements to sort<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">scanf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">%d<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">iNum<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Unsorted Array<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(iaArr,<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">,iNum<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Sorted Array<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">break<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">exit<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function: fnPartition<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to partition an iaArray using First element as Pivot<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint a[] - iaArray to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint l - start index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint r - end index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*<\/span><span style=\"color: #F97583\">RETURNS:<\/span><span style=\"color: #6A737D\"> integer value specifying the location of partition<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPartition<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">l<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">r<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> p;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[l];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ti <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> l;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tj <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> r<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">do<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">do<\/span><span style=\"color: #E1E4E8\"> { i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">; } <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> p);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">do<\/span><span style=\"color: #E1E4E8\"> { j<\/span><span style=\"color: #F97583\">--<\/span><span style=\"color: #E1E4E8\">; } <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[j] <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\"> p);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[i], <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">j);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[i], <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[l], <\/span><span style=\"color: #F97583\">&amp;<\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #E1E4E8\">[j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function: fnQuickSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Function to sort elements in an iaArray using Quick Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint a[] - iaArray to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint l - start index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint r - end index of the subiaArray to be sorted*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">a<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">l<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">r<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> s;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (l <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> r)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\ts <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnPartition<\/span><span style=\"color: #E1E4E8\">(a, l, r);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(a, l, s<\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnQuickSort<\/span><span style=\"color: #E1E4E8\">(a, s<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, r);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: GenRandInput<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to generate a fixed number of random elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t:no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnGenRandInput<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">srand<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #B392F0\">time<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">NULL<\/span><span style=\"color: #E1E4E8\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #E1E4E8\">[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">rand<\/span><span style=\"color: #E1E4E8\">()<\/span><span style=\"color: #F97583\">%<\/span><span style=\"color: #79B8FF\">10000<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function\t: DispArray<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Function to display elements of an array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*RETURNS\t: no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">( <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #F97583\">[]<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">n<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">printf<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot; <\/span><span style=\"color: #79B8FF\">%5d<\/span><span style=\"color: #9ECBFF\"> <\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #FFAB70\">X<\/span><span style=\"color: #E1E4E8\">[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n1\nEnter number of elements to sort : 6\nUnsorted Array\n    4680\n    2144\n     465\n    5406\n    8471\n    3602\nSorted Array\n     465\n    2144\n    3602\n    4680\n    5406\n    8471\n1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n2\nData File generated and stored in file &lt; MergePlot.dat &gt;.\n Use a plotting utility\n1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n3\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">1.MergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">2.Plot the Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter your choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> elements to <\/span><span style=\"color: #B392F0\">sort<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Unsorted Array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4680<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">2144<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">465<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">5406<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">8471<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">3602<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Sorted Array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">465<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">2144<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">3602<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4680<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">5406<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">8471<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">1.MergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">2.Plot the Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter your choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Data File generated and stored <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> file <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> MergePlot.dat <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> Use a plotting utility<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">1.MergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">2.Plot the Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter your choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Plotting Script for Gnuplot<\/h3>\n\n\n\n<p>We will now see how to generate a plot graph of data contained in <strong>QuickPlot.dat<\/strong> and store it as an image. Let&#8217;s write a gnuplot script file called <strong>03QuickPlot.gpl<\/strong> to do the same. The contents of which are shown below<\/p>\n\n\n\n<p>To execute the Gnuplot script you have to give the following command:<\/p>\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:#1E1E1E\"><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=\"# Gnuplot script file for plotting data in file &quot;QuickPlot.dat&quot;\n# This file is called       10QuickPlot.gpl\nset terminal png font arial\nset title &quot;Time Complexity for Quick Sort&quot;\nset autoscale\nset xlabel &quot;Size of Input&quot;\nset ylabel &quot;Sorting Time (microseconds)&quot;\nset grid\nset output &quot;QuickPlot.png&quot;\nplot &quot;QuickPlot.dat&quot; t 'Quick Sort' with lines\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\"># Gnuplot script file for plotting data in file &quot;QuickPlot.dat&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># This file is called       10QuickPlot.gpl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> terminal<\/span><span style=\"color: #D4D4D4\"> png font arial<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> title<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Time Complexity for Quick Sort&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> autoscale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> xlabel<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Size of Input&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> ylabel<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Sorting Time (microseconds)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> grid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> output<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;QuickPlot.png&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">plot<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;QuickPlot.dat&quot;<\/span><span style=\"color: #D4D4D4\"> t <\/span><span style=\"color: #CE9178\">&#39;Quick Sort&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">with<\/span><span style=\"color: #D4D4D4\"> lines<\/span><\/span><\/code><\/pre><\/div>\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:#24292e\"><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=\"$ gnuplot 03QuickPlot.gpl\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">$<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">gnuplot<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">03<\/span><span style=\"color: #9ECBFF\">QuickPlot.gpl<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>You can now see that an image file by name <strong>QuickPlot.png<\/strong> containing the graph will be created in your local folder. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/QuickPlot.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"640\" height=\"480\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/QuickPlot.png?resize=640%2C480&#038;ssl=1\" alt=\"\" class=\"wp-image-2002 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/QuickPlot.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2024\/04\/QuickPlot.png?resize=300%2C225&amp;ssl=1 300w\" data-sizes=\"(max-width: 640px) 100vw, 640px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 640px; --smush-placeholder-aspect-ratio: 640\/480;\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Time Complexity Analysis of Quick Sort<\/h3>\n\n\n\n<p>Worst Case &#8211; <strong>O(n<sup>2<\/sup>)<\/strong><\/p>\n\n\n\n<p>Average Case &#8211; <strong><strong>O(n*log n)<\/strong><\/strong><\/p>\n\n\n\n<p>Best Case &#8211; <strong><strong>O(n*log n)<\/strong><\/strong><\/p>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P11\">Program 11<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">Merge Sort<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program to sort a given set of n integer elements using Merge Sort method and compute its time complexity. Run the program for varied values of n&gt; 5000, and record the time taken to sort. Plot a graph of the time taken versus n. The elements can be read from a file or can be generated using the random number generator.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#1E1E1E\"><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=\"\/******************************************************************************\n*File\t\t: 11MergeSort.cpp\n*Description\t: Program to sort an array using Merge Sort\n*Author: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;fstream&gt;\n#include &lt;iomanip&gt;\n#include &lt;vector&gt;\n#include &lt;ctime&gt;\n#include &lt;cstdlib&gt;\nusing namespace std;\nclass MergeSort{\n    vector &lt;int&gt; numList;\n    int iNum;\n    public:\n    void fnGenRandArray(int);\n    void fnSortArray(int, int);\n    void fnDispArray();\n    void fnMerge(int ,int ,int);\n};\nint main( int argc, char **argv)\n{\n    struct timespec tv;\n    int iChoice, i, iNum;\n    double dStart, dEnd;\n    MergeSort myListObj;\n\tofstream fout(&quot;MergePlot.dat&quot;, ios::out);\n    for(;;)\n    {\n        cout &lt;&lt; &quot;n1.MergeSortn2.Plot the Graphn3.Exit&quot; ;\n        cout &lt;&lt; &quot;nEnter your choicen&quot;;\n        cin &gt;&gt; iChoice;\n        switch(iChoice)\n        {\n            case 1:\n                    cout &lt;&lt; &quot;nEnter number of elements to sort : &quot;; cin &gt;&gt; iNum;\n                    myListObj.fnGenRandArray(iNum);\n                    cout &lt;&lt; &quot;nUnsorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray();\n                    myListObj.fnSortArray(0,iNum-1);\n                    cout &lt;&lt; &quot;nSorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray();\n                    break;\n            case 2: for(i=100;i&lt;100000;i+=100)\n                    {\n                        myListObj.fnGenRandArray(i);\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dStart = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n                        myListObj.fnSortArray(0,i-1);\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dEnd = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n                        fout &lt;&lt; i &lt;&lt; &quot;t&quot; &lt;&lt; setprecision(10) &lt;&lt; dEnd - dStart &lt;&lt; endl;\n                    }\n                    cout &lt;&lt; &quot;nData File generated and stored in file &lt; MergePlot.dat &gt;.n Use a plotting utilityn&quot;;\n                    break;\n            case 3:\n                    exit(0);\n        }\n    }\n    fout.close();\n    return 0;\n}\nvoid MergeSort::fnGenRandArray(int n)\n{\n    int i, iVal;\n\tnumList.clear();\n\tsrand(time(NULL));\n\tfor(i=0;i&lt;n;i++)\n\t{\n        iVal = rand()%10000;\n        numList.push_back(iVal);\n\t}\n\tiNum = n;\n}\nvoid MergeSort::fnDispArray()\n{\n    int i;\n\tfor(i=0;i&lt;iNum;i++)\n\t{\n        cout &lt;&lt; setw(8) &lt;&lt; numList[i] &lt;&lt; endl;\n    }\n}\nvoid MergeSort::fnSortArray(int low,int high)\n{\n\tint mid;\n\tif(low&lt;high)\n\t{\n\t\tmid=(low+high)\/2;\n\t\tfnSortArray(low,mid);\n\t\tfnSortArray(mid+1,high);\n\t\tfnMerge(low,mid,high);\n\t}\n}\nvoid MergeSort::fnMerge(int low,int mid,int high)\n{\n    vector &lt;int&gt; b(0);\n\tint  i,j;\n\ti=low;\n\tj=mid+1;\n\tint k=0;\n\twhile(i&lt;=mid &amp;&amp; j&lt;=high)\n\t{\n\t\tif(numList[i]&lt;numList[j])\n            b.push_back(numList[i++]);\n\t\telse\n            b.push_back(numList[j++]);\n\t}\n\twhile(i&lt;=mid)\n        b.push_back(numList[i++]);\n\twhile(j&lt;=high)\n        b.push_back(numList[j++]);\n    for (i=low;i&lt;=high;i++)\n    {\n    \tnumList[low+k] = b[k];\n    \tk++;\n    }\n}\n\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t: 11MergeSort.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Program to sort an array using Merge Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;fstream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;iomanip&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;vector&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;ctime&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;cstdlib&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">using<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">namespace<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">std<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">class<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">MergeSort<\/span><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    vector &lt;<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">&gt; numList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">public:<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnGenRandArray<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnSortArray<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnMerge<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> ,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> ,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">};<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">argc<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">char<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">**<\/span><span style=\"color: #9CDCFE\">argv<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">struct<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">timespec<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> iChoice, i, iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">double<\/span><span style=\"color: #D4D4D4\"> dStart, dEnd;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    MergeSort myListObj;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tofstream <\/span><span style=\"color: #DCDCAA\">fout<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;MergePlot.dat&quot;<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #4EC9B0\">ios<\/span><span style=\"color: #D4D4D4\">::out);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(;;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">1.MergeSort<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">2.Plot the Graph<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">3.Exit&quot;<\/span><span style=\"color: #D4D4D4\"> ;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Enter your choice<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        cin &gt;&gt; iChoice;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">switch<\/span><span style=\"color: #D4D4D4\">(iChoice)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">case<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Enter number of elements to sort : &quot;<\/span><span style=\"color: #D4D4D4\">; cin &gt;&gt; iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #9CDCFE\">myListObj<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnGenRandArray<\/span><span style=\"color: #D4D4D4\">(iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Unsorted Array&quot;<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #9CDCFE\">myListObj<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #9CDCFE\">myListObj<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnSortArray<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">,iNum-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Sorted Array&quot;<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #9CDCFE\">myListObj<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">case<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">2<\/span><span style=\"color: #D4D4D4\">: <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">100<\/span><span style=\"color: #D4D4D4\">;i&lt;<\/span><span style=\"color: #B5CEA8\">100000<\/span><span style=\"color: #D4D4D4\">;i+=<\/span><span style=\"color: #B5CEA8\">100<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        <\/span><span style=\"color: #9CDCFE\">myListObj<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnGenRandArray<\/span><span style=\"color: #D4D4D4\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        <\/span><span style=\"color: #DCDCAA\">clock_gettime<\/span><span style=\"color: #D4D4D4\">(CLOCK_REALTIME, &amp;tv);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        dStart = <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_sec<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_nsec<\/span><span style=\"color: #D4D4D4\">\/<\/span><span style=\"color: #B5CEA8\">1000000000.0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        <\/span><span style=\"color: #9CDCFE\">myListObj<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">fnSortArray<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">,i-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        <\/span><span style=\"color: #DCDCAA\">clock_gettime<\/span><span style=\"color: #D4D4D4\">(CLOCK_REALTIME, &amp;tv);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        dEnd = <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_sec<\/span><span style=\"color: #D4D4D4\"> + <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_nsec<\/span><span style=\"color: #D4D4D4\">\/<\/span><span style=\"color: #B5CEA8\">1000000000.0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                        fout &lt;&lt; i &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">t<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; <\/span><span style=\"color: #DCDCAA\">setprecision<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">) &lt;&lt; dEnd - dStart &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    cout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Data File generated and stored in file &lt; MergePlot.dat &gt;.<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\"> Use a plotting utility<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">case<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">3<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #DCDCAA\">exit<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #9CDCFE\">fout<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">close<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">MergeSort<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">fnGenRandArray<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i, iVal;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">clear<\/span><span style=\"color: #D4D4D4\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">srand<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #DCDCAA\">time<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">NULL<\/span><span style=\"color: #D4D4D4\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        iVal = <\/span><span style=\"color: #DCDCAA\">rand<\/span><span style=\"color: #D4D4D4\">()%<\/span><span style=\"color: #B5CEA8\">10000<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push_back<\/span><span style=\"color: #D4D4D4\">(iVal);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tiNum = n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">MergeSort<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;iNum;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        cout &lt;&lt; <\/span><span style=\"color: #DCDCAA\">setw<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">8<\/span><span style=\"color: #D4D4D4\">) &lt;&lt; <\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[i] &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">MergeSort<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">fnSortArray<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">low<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">high<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> mid;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(low&lt;high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tmid=(low+high)\/<\/span><span style=\"color: #B5CEA8\">2<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">fnSortArray<\/span><span style=\"color: #D4D4D4\">(low,mid);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">fnSortArray<\/span><span style=\"color: #D4D4D4\">(mid+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">,high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">fnMerge<\/span><span style=\"color: #D4D4D4\">(low,mid,high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">MergeSort<\/span><span style=\"color: #D4D4D4\">::<\/span><span style=\"color: #DCDCAA\">fnMerge<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">low<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">mid<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">high<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    vector &lt;<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">&gt; <\/span><span style=\"color: #DCDCAA\">b<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">  i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\ti=low;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tj=mid+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> k=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(i&lt;=mid &amp;&amp; j&lt;=high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[i]&lt;<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[j])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push_back<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[i++]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push_back<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[j++]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(i&lt;=mid)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push_back<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[i++]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(j&lt;=high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #DCDCAA\">push_back<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[j++]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (i=low;i&lt;=high;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    \t<\/span><span style=\"color: #9CDCFE\">numList<\/span><span style=\"color: #D4D4D4\">[low+k] = <\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[k];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    \tk++;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">C Code<\/h4>\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:#1E1E1E\"><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=\"\/******************************************************************************\n*File\t\t: 11MergeSort.c\n*Description\t: Program to sort an array using Merge Sort\n*Author: Prabodh C P\n*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************************************\/\n\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;sys\/time.h&gt;\n#include &lt;time.h&gt;\n\n\nvoid fnGenRandInput(int [], int);\nvoid fnDispArray( int [], int);\nvoid fnMerge(int [], int ,int ,int);\nvoid fnMergeSort(int [], int , int);\n\n\/******************************************************************************\n*Function\t: main\n*Function parameters:\n*\tint argc - no of commamd line arguments\n*\tchar **argv - vector to store command line argumennts\n*RETURNS\t:\t0 on success\n******************************************************************************\/\n\nint main( int argc, char **argv)\n{\n\n\tFILE *fp;\n\tstruct timeval tv;\n\tdouble dStart,dEnd;\n\tint iaArr[500000],iNum,i,iChoice;\n\n    for(;;)\n    {\n        printf(&quot;\\n1.Plot the Graph\\n2.MergeSort\\n3.Exit&quot;);\n        printf(&quot;\\nEnter your choice\\n&quot;);\n        scanf(&quot;%d&quot;,&amp;iChoice);\n\n        switch(iChoice)\n        {\n            case 1:\n                fp = fopen(&quot;MergePlot.dat&quot;,&quot;w&quot;);\n\n                for(i=100;i&lt;100000;i+=100)\n                {\n                    fnGenRandInput(iaArr,i);\n\n                    gettimeofday(&amp;tv,NULL);\n                    dStart = tv.tv_sec + (tv.tv_usec\/1000000.0);\n\n                    fnMergeSort(iaArr,0,i-1);\n\n                    gettimeofday(&amp;tv,NULL);\n                    dEnd = tv.tv_sec + (tv.tv_usec\/1000000.0);\n\n                    fprintf(fp,&quot;%d\\t%lf\\n&quot;,i,dEnd-dStart);\n\n                }\n                fclose(fp);\n\n                printf(&quot;\\nData File generated and stored in file &lt; MergePlot.dat &gt;.\\n Use a plotting utility\\n&quot;);\n            break;\n\n            case 2:\n                printf(&quot;\\nEnter the number of elements to sort\\n&quot;);\n                scanf(&quot;%d&quot;,&amp;iNum);\n                printf(&quot;\\nUnsorted Array\\n&quot;);\n                fnGenRandInput(iaArr,iNum);\n                fnDispArray(iaArr,iNum);\n                fnMergeSort(iaArr,0,iNum-1);\n                printf(&quot;\\nSorted Array\\n&quot;);\n                fnDispArray(iaArr,iNum);\n            break;\n\n            case 3:\n                exit(0);\n        }\n    }\n\n\treturn 0;\n}\n\n\/******************************************************************************\n*Function\t: fnMerge\n*Description\t: Function to merge two sorted arrays\n*Function parameters:\n*\tint a[] - iaArray to hold integers\n*\tint low\t- start index of the subiaArray to be sorted\n*\tint mid\t- mid index of the subiaArray to be sorted\n*\tint right\t- end index of the subiaArray to be sorted\n*RETURNS\t: no value\n******************************************************************************\/\n\nvoid fnMerge(int a[], int low,int mid,int high)\n{\n\tint  i,k,j,b[500000];\n\ti=k=low;\n\tj=mid+1;\n\twhile(i&lt;=mid &amp;&amp; j&lt;=high)\n\t{\n\t\tif(a[i]&lt;a[j])\n\t\t\tb[k++]=a[i++];\n\t\telse\n\t\t\tb[k++]=a[j++];\n\t}\n\twhile(i&lt;=mid)\n\t\tb[k++]=a[i++];\n\twhile(j&lt;=high)\n\t\tb[k++]=a[j++];\n\tfor(i=low;i&lt;k;i++)\n\ta[i]=b[i];\n}\n\n\/******************************************************************************\n*Function\t: fnMergeSort\n*Description\t: Function to sort elements in an iaArray using Merge Sort\n*Function parameters:\n*\tint a[] - iaArray to hold integers\n*\tint low\t- start index of the array to be sorted\n*\tint high- end index of the array to be sorted\n*RETURNS\t: no value\n******************************************************************************\/\n\nvoid fnMergeSort(int a[],int low,int high)\n{\n\tint mid;\n\tif(low&lt;high)\n\t{\n\t\tmid=(low+high)\/2;\n\t\tfnMergeSort(a,low,mid);\n\t\tfnMergeSort(a,mid+1,high);\n\t\tfnMerge(a,low,mid,high);\n\t}\n}\n\n\/******************************************************************************\n*Function\t: GenRandInput\n*Description\t: Function to generate a fixed number of random elements\n*Function parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t:no return value\n******************************************************************************\/\n\nvoid fnGenRandInput(int X[], int n)\n{\n\tint i;\n\n\tsrand(time(NULL));\n\tfor(i=0;i&lt;n;i++)\n\t{\n\t\tX[i] = rand()%10000;\n\t}\n\n}\n\n\/******************************************************************************\n*Function\t: DispArray\n*Description\t: Function to display elements of an array\n*Function parameters:\n*\tint X[] - array to hold integers\n*\tint n\t- no of elements in the array\n*RETURNS\t: no return value\n******************************************************************************\/\n\nvoid fnDispArray( int X[], int n)\n{\n\tint i;\n\n\tfor(i=0;i&lt;n;i++)\n\t\tprintf(&quot; %5d \\n&quot;,X[i]);\n\n}\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t: 11MergeSort.c<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Program to sort an array using Merge Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t: gcc compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;sys\/time.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;time.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnGenRandInput<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnMerge<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> ,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> ,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnMergeSort<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> , <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint argc - no of commamd line arguments<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tchar **argv - vector to store command line argumennts<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">argc<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">char<\/span><span style=\"color: #D4D4D4\"> **<\/span><span style=\"color: #9CDCFE\">argv<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tFILE *fp;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">struct<\/span><span style=\"color: #D4D4D4\"> timeval tv;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">double<\/span><span style=\"color: #D4D4D4\"> dStart,dEnd;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">iaArr<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #B5CEA8\">500000<\/span><span style=\"color: #D4D4D4\">],iNum,i,iChoice;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(;;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">1.Plot the Graph<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">2.MergeSort<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">3.Exit&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">Enter your choice<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;iChoice);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        <\/span><span style=\"color: #C586C0\">switch<\/span><span style=\"color: #D4D4D4\">(iChoice)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">case<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                fp = <\/span><span style=\"color: #DCDCAA\">fopen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;MergePlot.dat&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #CE9178\">&quot;w&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">100<\/span><span style=\"color: #D4D4D4\">;i&lt;<\/span><span style=\"color: #B5CEA8\">100000<\/span><span style=\"color: #D4D4D4\">;i+=<\/span><span style=\"color: #B5CEA8\">100<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #DCDCAA\">fnGenRandInput<\/span><span style=\"color: #D4D4D4\">(iaArr,i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #DCDCAA\">gettimeofday<\/span><span style=\"color: #D4D4D4\">(&amp;tv,<\/span><span style=\"color: #569CD6\">NULL<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    dStart = <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_sec<\/span><span style=\"color: #D4D4D4\"> + (<\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_usec<\/span><span style=\"color: #D4D4D4\">\/<\/span><span style=\"color: #B5CEA8\">1000000.0<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #DCDCAA\">fnMergeSort<\/span><span style=\"color: #D4D4D4\">(iaArr,<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">,i-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #DCDCAA\">gettimeofday<\/span><span style=\"color: #D4D4D4\">(&amp;tv,<\/span><span style=\"color: #569CD6\">NULL<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    dEnd = <\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_sec<\/span><span style=\"color: #D4D4D4\"> + (<\/span><span style=\"color: #9CDCFE\">tv<\/span><span style=\"color: #D4D4D4\">.<\/span><span style=\"color: #9CDCFE\">tv_usec<\/span><span style=\"color: #D4D4D4\">\/<\/span><span style=\"color: #B5CEA8\">1000000.0<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                    <\/span><span style=\"color: #DCDCAA\">fprintf<\/span><span style=\"color: #D4D4D4\">(fp,<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #D7BA7D\">\\t<\/span><span style=\"color: #9CDCFE\">%lf<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,i,dEnd-dStart);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">fclose<\/span><span style=\"color: #D4D4D4\">(fp);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">Data File generated and stored in file &lt; MergePlot.dat &gt;.<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\"> Use a plotting utility<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">case<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">2<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">Enter the number of elements to sort<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,&amp;<\/span><span style=\"color: #9CDCFE\">iNum<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">Unsorted Array<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">fnGenRandInput<\/span><span style=\"color: #D4D4D4\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">fnMergeSort<\/span><span style=\"color: #D4D4D4\">(iaArr,<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">,iNum-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">Sorted Array<\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">(iaArr,iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">break<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">            <\/span><span style=\"color: #C586C0\">case<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">3<\/span><span style=\"color: #D4D4D4\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">                <\/span><span style=\"color: #DCDCAA\">exit<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: fnMerge<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Function to merge two sorted arrays<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint a[] - iaArray to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint low\t- start index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint mid\t- mid index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint right\t- end index of the subiaArray to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnMerge<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">low<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">mid<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">high<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\">  i,k,j,<\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[<\/span><span style=\"color: #B5CEA8\">500000<\/span><span style=\"color: #D4D4D4\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\ti=k=low;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tj=mid+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(i&lt;=mid &amp;&amp; j&lt;=high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[i]&lt;<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[j])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[k++]=<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[i++];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[k++]=<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[j++];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(i&lt;=mid)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[k++]=<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[i++];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">while<\/span><span style=\"color: #D4D4D4\">(j&lt;=high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[k++]=<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[j++];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=low;i&lt;k;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #D4D4D4\">[i]=<\/span><span style=\"color: #9CDCFE\">b<\/span><span style=\"color: #D4D4D4\">[i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: fnMergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Function to sort elements in an iaArray using Merge Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint a[] - iaArray to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint low\t- start index of the array to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint high- end index of the array to be sorted<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnMergeSort<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">a<\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">low<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">high<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> mid;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(low&lt;high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tmid=(low+high)\/<\/span><span style=\"color: #B5CEA8\">2<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">fnMergeSort<\/span><span style=\"color: #D4D4D4\">(a,low,mid);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">fnMergeSort<\/span><span style=\"color: #D4D4D4\">(a,mid+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">,high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">fnMerge<\/span><span style=\"color: #D4D4D4\">(a,low,mid,high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: GenRandInput<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Function to generate a fixed number of random elements<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t:no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnGenRandInput<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">X<\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">srand<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #DCDCAA\">time<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">NULL<\/span><span style=\"color: #D4D4D4\">));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #9CDCFE\">X<\/span><span style=\"color: #D4D4D4\">[i] = <\/span><span style=\"color: #DCDCAA\">rand<\/span><span style=\"color: #D4D4D4\">()%<\/span><span style=\"color: #B5CEA8\">10000<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: DispArray<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Function to display elements of an array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint X[] - array to hold integers<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n\t- no of elements in the array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: no return value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************************************\/<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnDispArray<\/span><span style=\"color: #D4D4D4\">( <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">X<\/span><span style=\"color: #569CD6\">[]<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;i&lt;n;i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot; <\/span><span style=\"color: #9CDCFE\">%5d<\/span><span style=\"color: #CE9178\"> <\/span><span style=\"color: #D7BA7D\">\\n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #9CDCFE\">X<\/span><span style=\"color: #D4D4D4\">[i]);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#1E1E1E\"><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=\"1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n1\nEnter number of elements to sort : 6\nUnsorted Array\n    4680\n    2144\n     465\n    5406\n    8471\n    3602\nSorted Array\n     465\n    2144\n    3602\n    4680\n    5406\n    8471\n1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n2\nData File generated and stored in file &lt; MergePlot.dat &gt;.\n Use a plotting utility\n1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n3\n\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #DCDCAA\">1.MergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">2.Plot<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">the<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Enter<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">your<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Enter<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">number<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">of<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">elements<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">to<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">sort<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">:<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">6<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Unsorted<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">Array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">4680<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">2144<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">     <\/span><span style=\"color: #DCDCAA\">465<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">5406<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">8471<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">3602<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Sorted<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">Array<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">     <\/span><span style=\"color: #DCDCAA\">465<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">2144<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">3602<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">4680<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">5406<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">    <\/span><span style=\"color: #DCDCAA\">8471<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">1.MergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">2.Plot<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">the<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Enter<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">your<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Data<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">File<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">generated<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">and<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">stored<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">in<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">file<\/span><span style=\"color: #D4D4D4\"> &lt; <\/span><span style=\"color: #CE9178\">MergePlot.dat<\/span><span style=\"color: #D4D4D4\"> &gt;<\/span><span style=\"color: #CE9178\">.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">Use<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">a<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">plotting<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">utility<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">1.MergeSort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">2.Plot<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">the<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">Graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">3.Exit<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">Enter<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">your<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">choice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #DCDCAA\">3<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Plotting Script for Gnuplot<\/h3>\n\n\n\n<p>We will now see how to generate a plot graph of data contained in <strong>MergePlot.dat<\/strong> and store it as an image. For that let&#8217;s write a gnuplot script file called <strong>03MergePlot.gpl<\/strong>. The contents of which are shown below<\/p>\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:#1E1E1E\"><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=\"# Gnuplot script file for plotting data in file &quot;MergePlot.dat&quot;\n# This file is called       MergePlot.gpl\nset terminal png font arial\nset title &quot;Time Complexity for Merge Sort&quot;\nset autoscale\nset xlabel &quot;Size of Input&quot;\nset ylabel &quot;Sorting Time (microseconds)&quot;\nset grid\nset output &quot;MergePlot.png&quot;\nplot &quot;MergePlot.dat&quot; t 'Merge Sort' with lines\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\"># Gnuplot script file for plotting data in file &quot;MergePlot.dat&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># This file is called       MergePlot.gpl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> terminal<\/span><span style=\"color: #D4D4D4\"> png font arial<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> title<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Time Complexity for Merge Sort&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> autoscale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> xlabel<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Size of Input&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> ylabel<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;Sorting Time (microseconds)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> grid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">set<\/span><span style=\"color: #4EC9B0\"> output<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;MergePlot.png&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">plot<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #CE9178\">&quot;MergePlot.dat&quot;<\/span><span style=\"color: #D4D4D4\"> t <\/span><span style=\"color: #CE9178\">&#39;Merge Sort&#39;<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">with<\/span><span style=\"color: #D4D4D4\"> lines<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>To execute the Gnuplot script you have to give the following command:<\/p>\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:#24292e\"><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=\"$ gnuplot 03MergePlot.gpl\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #B392F0\">$<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">gnuplot<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">03<\/span><span style=\"color: #9ECBFF\">MergePlot.gpl<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>You can now see that an image file by name MergePlot.png containing the graph will be created in your local folder. <\/p>\n\n\n\n<figure class=\"wp-block-image aligncenter size-full\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/MergePlot.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"640\" height=\"480\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/MergePlot.png?resize=640%2C480&#038;ssl=1\" alt=\"\" class=\"wp-image-651 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/MergePlot.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/MergePlot.png?resize=300%2C225&amp;ssl=1 300w\" data-sizes=\"(max-width: 640px) 100vw, 640px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 640px; --smush-placeholder-aspect-ratio: 640\/480;\" \/><\/a><\/figure>\n\n\n\n<h3 class=\"wp-block-heading\">Time Complexity Analysis of Merge Sort<\/h3>\n\n\n\n<p>Worst Case &#8211; <strong>O(n*log n)<\/strong><\/p>\n\n\n\n<p>Average Case &#8211; <strong><strong>O(n*log n)<\/strong><\/strong><\/p>\n\n\n\n<p>Best Case &#8211; <strong><strong>O(n*log n)<\/strong><\/strong><\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading has-text-align-left\" id=\"P12\">Program 12<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\">N Queen&#8217;s problem<\/h3>\n\n\n\n<p>Design and implement C\/C++ Program for N Queen&#8217;s problem using Backtracking.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">C++ Code<\/h3>\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:#1E1E1E\"><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=\"\/******************************************************\n*File\t\t: 12NQueens.cpp\n*Description: Program to solve N Queens problem using backtracking.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************\/\n#include &lt;iostream&gt;\n#include &lt;cstdlib&gt;\nusing namespace std;\nconst int MAX = 10;\nint SolnCount =0;\nvoid fnChessBoardShow(int n, int colVec[MAX]);\nbool fnCheckPlace(int KthQueen, int ColNum, int colVec[MAX]);\nint NQueen(int k,int n, int colVec[MAX]);\n\/******************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t:\t0 on success\n******************************************************\/\nint main(void)\n{\n\tint n;\n\tint colVec[MAX];\n\tcout &lt;&lt; &quot;Enter the number of queens : &quot;;\n\tcin &gt;&gt; n;\n\t\n\tif (!NQueen(0,n,colVec))\n\t\tcout &lt;&lt; &quot;No solution exists for the given problem instance.&quot; &lt;&lt; endl;\n\telse\n\t\tcout &lt;&lt; &quot;Number of solution for the given problem instance is : &quot; \n\t\t&lt;&lt; SolnCount &lt;&lt; endl;\n\treturn 0;\n}\n\/******************************************************\n*Function\t: NQueen\n*Description\t: Function to place n queens on a nxn chess board without any\n*\tqueen attacking any other queen\n*Input parameters:\n*\tint k - kth queen\n*\tint n - no of queens\n*\tint colVec[MAX] - vector containing column numbers of each queen\n*RETURNS\t: returns 1 if solution exists or zero otherwise\n******************************************************\/\nint NQueen(int k,int n, int colVec[MAX])\n{\n\tstatic int flag;\n\tfor(int i=0; i&lt;n; i++)\n\t{\n\t\tif(fnCheckPlace(k,i,colVec) == true)\n\t\t{\n\t\t\tcolVec[k] = i;\n\t\t\tif(k == n-1)\n\t\t\t{\n\t\t\t\tfnChessBoardShow(n,colVec);\n\t\t\t\tSolnCount++;\n\t\t\t\tflag = 1;\n\t\t\t\treturn flag;\n\t\t\t}\n\t\t\tNQueen(k+1, n, colVec);\n\t\t}\n\t}\n\treturn flag;\n}\n\/******************************************************\n*Function\t: fnCheckPlace\n*Description: Function to check whether a kth queen can be placed in a specific\n*\tcolumn or not\n*Input parameters:\n*\tint KthQueen - kth queen\n*\tint ColNum - columnn number\n*\tint colVec[MAX] - vector containing column numbers of each queen\n*RETURNS\t: returns true if the queen can be palced or false otherwise\n******************************************************\/\nbool fnCheckPlace(int KthQueen, int ColNum, int colVec[MAX])\n{\n\tfor(int i=0; i&lt;KthQueen; i++)\n\t{\n\t\tif(colVec[i] == ColNum || abs(colVec[i]-ColNum) == abs(i-KthQueen))\n\t\treturn false;\n\t}\n\treturn true;\n}\n\/******************************************************\n*Function\t: fnChessBoardShow\n*Description: Function to graphically display solution to n queens problem\n*Input parameters:\n*\tint n - no of queens\n*\tint colVec[MAX] - vector containing column numbers of each queen\n*RETURNS\t: no value\n******************************************************\/\nvoid fnChessBoardShow(int n, int colVec[MAX])\n{\n\tcout &lt;&lt; &quot;nSolution #&quot; &lt;&lt; SolnCount+1 &lt;&lt; endl &lt;&lt; endl;\n\tfor (int i=0; i&lt;n; i++)\n\t{\n\t\tfor (int j=0; j&lt;n; j++)\n\t\t{\n\t\t\tif (j == colVec[i])\n\t\t\t\tcout &lt;&lt; &quot;Q &quot;;\n\t\t\telse\n\t\t\t\tcout &lt;&lt; &quot;# &quot;;\n\t\t}\n\t\tcout &lt;&lt; endl;\n\t}\n\tcout &lt;&lt; endl;\n}\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t: 12NQueens.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Program to solve N Queens problem using backtracking.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;iostream&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;cstdlib&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">using<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">namespace<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #4EC9B0\">std<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> MAX = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> SolnCount =<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnChessBoardShow<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">bool<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnCheckPlace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">KthQueen<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">ColNum<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">k<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;Enter the number of queens : &quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tcin &gt;&gt; n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (!<\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">,n,colVec))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;No solution exists for the given problem instance.&quot;<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;Number of solution for the given problem instance is : &quot;<\/span><span style=\"color: #D4D4D4\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t&lt;&lt; SolnCount &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: NQueen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Function to place n queens on a nxn chess board without any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tqueen attacking any other queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint k - kth queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n - no of queens<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint colVec[MAX] - vector containing column numbers of each queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: returns 1 if solution exists or zero otherwise<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">k<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">static<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> flag;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;n; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #DCDCAA\">fnCheckPlace<\/span><span style=\"color: #D4D4D4\">(k,i,colVec) == <\/span><span style=\"color: #569CD6\">true<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[k] = i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(k == n-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #DCDCAA\">fnChessBoardShow<\/span><span style=\"color: #D4D4D4\">(n,colVec);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tSolnCount++;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tflag = <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> flag;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(k+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">, n, colVec);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> flag;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: fnCheckPlace<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Function to check whether a kth queen can be placed in a specific<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tcolumn or not<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint KthQueen - kth queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint ColNum - columnn number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint colVec[MAX] - vector containing column numbers of each queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: returns true if the queen can be palced or false otherwise<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">bool<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnCheckPlace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">KthQueen<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">ColNum<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;KthQueen; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[i] == ColNum || <\/span><span style=\"color: #DCDCAA\">abs<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[i]-ColNum) == <\/span><span style=\"color: #DCDCAA\">abs<\/span><span style=\"color: #D4D4D4\">(i-KthQueen))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">false<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">true<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: fnChessBoardShow<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Function to graphically display solution to n queens problem<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n - no of queens<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint colVec[MAX] - vector containing column numbers of each queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnChessBoardShow<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Solution #&quot;<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; SolnCount+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\"> &lt;&lt; endl &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;n; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> j=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; j&lt;n; j++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (j == <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[i])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;Q &quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tcout &lt;&lt; <\/span><span style=\"color: #CE9178\">&quot;# &quot;<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\tcout &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\tcout &lt;&lt; endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">C Code<\/h3>\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:#1E1E1E\"><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=\"\/******************************************************\n*File\t\t: 12NQueens.cpp\n*Description: Program to solve N Queens problem using backtracking.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04\n*Date\t\t: 31 Mar 2024\n******************************************************\/\n#include &lt;stdio.h&gt;\n#include &lt;stdlib.h&gt;\n#include &lt;stdbool.h&gt;\nconst int MAX = 10;\nint SolnCount =0;\nvoid fnChessBoardShow(int n, int colVec[MAX]);\nbool fnCheckPlace(int KthQueen, int ColNum, int colVec[MAX]);\nint NQueen(int k,int n, int colVec[MAX]);\n\/******************************************************\n*Function\t: main\n*Input parameters: no parameters\n*RETURNS\t:\t0 on success\n******************************************************\/\nint main(void)\n{\n\tint n;\n\tint colVec[MAX];\n\tprintf(&quot;Enter the number of queens : &quot;);\n\tscanf(&quot;%d&quot;, &amp;n);\n\t\n\tif (!NQueen(0,n,colVec))\n\t\tprintf(&quot;No solution exists for the given problem instance.n&quot;);\n\telse\n\t\tprintf(&quot;Number of solution for the given problem instance is : %dn&quot;, SolnCount);\n\treturn 0;\n}\n\/******************************************************\n*Function\t: NQueen\n*Description\t: Function to place n queens on a nxn chess board without any\n*\tqueen attacking any other queen\n*Input parameters:\n*\tint k - kth queen\n*\tint n - no of queens\n*\tint colVec[MAX] - vector containing column numbers of each queen\n*RETURNS\t: returns 1 if solution exists or zero otherwise\n******************************************************\/\nint NQueen(int k,int n, int colVec[MAX])\n{\n\tstatic int flag;\n\tfor(int i=0; i&lt;n; i++)\n\t{\n\t\tif(fnCheckPlace(k,i,colVec) == true)\n\t\t{\n\t\t\tcolVec[k] = i;\n\t\t\tif(k == n-1)\n\t\t\t{\n\t\t\t\tfnChessBoardShow(n,colVec);\n\t\t\t\tSolnCount++;\n\t\t\t\tflag = 1;\n\t\t\t\treturn flag;\n\t\t\t}\n\t\t\tNQueen(k+1, n, colVec);\n\t\t}\n\t}\n\treturn flag;\n}\n\/******************************************************\n*Function\t: fnCheckPlace\n*Description: Function to check whether a kth queen can be placed in a specific\n*\tcolumn or not\n*Input parameters:\n*\tint KthQueen - kth queen\n*\tint ColNum - columnn number\n*\tint colVec[MAX] - vector containing column numbers of each queen\n*RETURNS\t: returns true if the queen can be palced or false otherwise\n******************************************************\/\nbool fnCheckPlace(int KthQueen, int ColNum, int colVec[MAX])\n{\n\tfor(int i=0; i&lt;KthQueen; i++)\n\t{\n\t\tif(colVec[i] == ColNum || abs(colVec[i]-ColNum) == abs(i-KthQueen))\n\t\treturn false;\n\t}\n\treturn true;\n}\n\/******************************************************\n*Function\t: fnChessBoardShow\n*Description: Function to graphically display solution to n queens problem\n*Input parameters:\n*\tint n - no of queens\n*\tint colVec[MAX] - vector containing column numbers of each queen\n*RETURNS\t: no value\n******************************************************\/\nvoid fnChessBoardShow(int n, int colVec[MAX])\n{\n\tprintf(&quot;nSolution #%dnn&quot;, SolnCount+1);\n\tfor (int i=0; i&lt;n; i++)\n\t{\n\t\tfor (int j=0; j&lt;n; j++)\n\t\t{\n\t\t\tif (j == colVec[i])\n\t\t\t\tprintf(&quot;Q &quot;);\n\t\t\telse\n\t\t\t\tprintf(&quot;# &quot;);\n\t\t}\n\t\tprintf(&quot;n&quot;);\n\t}\n\tprintf(&quot;n&quot;);\n}\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*File\t\t: 12NQueens.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Program to solve N Queens problem using backtracking.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Author\t\t: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Compiler\t: g++ compiler 11.4.0, Ubuntu 22.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Date\t\t: 31 Mar 2024<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stdio.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stdlib.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #C586C0\">#include<\/span><span style=\"color: #569CD6\"> <\/span><span style=\"color: #CE9178\">&lt;stdbool.h&gt;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">const<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> MAX = <\/span><span style=\"color: #B5CEA8\">10<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> SolnCount =<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnChessBoardShow<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">bool<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnCheckPlace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">KthQueen<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">ColNum<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">k<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: main<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters: no parameters<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t:\t0 on success<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">main<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Enter the number of queens : &quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">scanf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">, &amp;n);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (!<\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">,n,colVec))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;No solution exists for the given problem instance.<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Number of solution for the given problem instance is : <\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">, SolnCount);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: NQueen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description\t: Function to place n queens on a nxn chess board without any<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tqueen attacking any other queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint k - kth queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n - no of queens<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint colVec[MAX] - vector containing column numbers of each queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: returns 1 if solution exists or zero otherwise<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">k<\/span><span style=\"color: #D4D4D4\">,<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #569CD6\">static<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> flag;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;n; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #DCDCAA\">fnCheckPlace<\/span><span style=\"color: #D4D4D4\">(k,i,colVec) == <\/span><span style=\"color: #569CD6\">true<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[k] = i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(k == n-<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #DCDCAA\">fnChessBoardShow<\/span><span style=\"color: #D4D4D4\">(n,colVec);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tSolnCount++;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\tflag = <\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> flag;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #DCDCAA\">NQueen<\/span><span style=\"color: #D4D4D4\">(k+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">, n, colVec);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> flag;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: fnCheckPlace<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Function to check whether a kth queen can be placed in a specific<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tcolumn or not<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint KthQueen - kth queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint ColNum - columnn number<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint colVec[MAX] - vector containing column numbers of each queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: returns true if the queen can be palced or false otherwise<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">bool<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnCheckPlace<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">KthQueen<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">ColNum<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;KthQueen; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[i] == ColNum || <\/span><span style=\"color: #DCDCAA\">abs<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[i]-ColNum) == <\/span><span style=\"color: #DCDCAA\">abs<\/span><span style=\"color: #D4D4D4\">(i-KthQueen))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">false<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">return<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #569CD6\">true<\/span><span style=\"color: #D4D4D4\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">\/******************************************************<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Function\t: fnChessBoardShow<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Description: Function to graphically display solution to n queens problem<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*Input parameters:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint n - no of queens<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*\tint colVec[MAX] - vector containing column numbers of each queen<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">*RETURNS\t: no value<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\">******************************************************\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #569CD6\">void<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #DCDCAA\">fnChessBoardShow<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">n<\/span><span style=\"color: #D4D4D4\">, <\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[MAX])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">Solution #<\/span><span style=\"color: #9CDCFE\">%d<\/span><span style=\"color: #D7BA7D\">nn<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">, SolnCount+<\/span><span style=\"color: #B5CEA8\">1<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> i=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; i&lt;n; i++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #C586C0\">for<\/span><span style=\"color: #D4D4D4\"> (<\/span><span style=\"color: #569CD6\">int<\/span><span style=\"color: #D4D4D4\"> j=<\/span><span style=\"color: #B5CEA8\">0<\/span><span style=\"color: #D4D4D4\">; j&lt;n; j++)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">if<\/span><span style=\"color: #D4D4D4\"> (j == <\/span><span style=\"color: #9CDCFE\">colVec<\/span><span style=\"color: #D4D4D4\">[i])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;Q &quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t<\/span><span style=\"color: #C586C0\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;# &quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">\t<\/span><span style=\"color: #DCDCAA\">printf<\/span><span style=\"color: #D4D4D4\">(<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D7BA7D\">n<\/span><span style=\"color: #CE9178\">&quot;<\/span><span style=\"color: #D4D4D4\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">Output<\/h3>\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:#1E1E1E\"><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=\"Enter the number of queens : 3\nNo solution exists for the given problem instance.\nEnter the number of queens : 4\nSolution #1\n# Q # # \n# # # Q \nQ # # # \n# # Q # \nSolution #2\n# # Q # \nQ # # # \n# # # Q \n# Q # # \nNumber of solution for the given problem instance is : 2\" style=\"color:#D4D4D4;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 dark-plus\" style=\"background-color: #1E1E1E\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D4D4D4\">Enter the number of queens : 3<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">No solution exists for the given problem instance.<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Enter the number of queens : 4<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Solution <\/span><span style=\"color: #6A9955\">#1<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Q # # <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># # # Q <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Q <\/span><span style=\"color: #6A9955\"># # # <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># # Q # <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Solution <\/span><span style=\"color: #6A9955\">#2<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># # Q # <\/span><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Q <\/span><span style=\"color: #6A9955\"># # # <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># # # Q <\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A9955\"># Q # # <\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D4D4D4\">Number of solution for the given problem instance is : 2<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n<\/div>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"P13\">Additional solutions<\/h2>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"P13a\">Travelling Sales Person Problem<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Write C++\/ Java programs to solve Travelling Sales Person problem using Dynamic programming.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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;iomanip&gt;\n \nusing namespace std;\n \nint cities[10][10],completed[10],n,cost=0;\n \nvoid takeInput();\nint least(int );\nvoid mincost(int);\n \nint main()\n{\n\ttakeInput();\n\t \n\tcout &lt;&lt; &quot;nnThe Path is:n&quot;;\n\tmincost(0); \/\/passing 0 because starting vertex\n\t \n\tcout &lt;&lt; &quot;nnMinimum cost is &quot; &lt;&lt; cost &lt;&lt; endl;\n\t \n\treturn 0;\n}\nvoid takeInput()\n{\n\tint i,j;\n\t \n\tcout &lt;&lt; &quot;Enter the number of cities: &quot;;\n\tcin &gt;&gt; n;\n\t \n\tcout &lt;&lt; &quot;nEnter the Cost Matrixn&quot;;\n\t \n\tfor(i=0;i&lt;n;i++)\n\t{\n\t\tfor(j=0;j&lt;n;j++)\n\t\t\tcin &gt;&gt; cities[i][j];\t\t \n\t\tcompleted[i]=0;\n\t}\n\t \n\tcout &lt;&lt; &quot;nnThe cost list is:&quot;;\n\t \n\tfor( i=0;i &lt; n;i++)\n\t{\n\t\tcout &lt;&lt; endl;\n\t\tfor(j=0;j &lt; n;j++)\n\t\t\tcout &lt;&lt; &quot;t&quot; &lt;&lt; cities[i][j];\n\t}\n}\n \nint least(int c)\n{\n\tint i,nc=999;\n\tint min=999,kmin;\n\t \n\tfor(i=0;i &lt; n;i++)\n\t{\n\t\tif((cities[c][i]!=0)&amp;&amp;(completed[i]==0))\n\t\t{\n\t\t\tif(cities[c][i]+cities[i][c] &lt; min)\n\t\t\t{\n\t\t\t\tmin=cities[i][0]+cities[c][i];\n\t\t\t\tkmin=cities[c][i];\n\t\t\t\tnc=i;\n\t\t\t}\t\t\n\t\t}\n\t}\t \n\tif(min!=999)\n\t\tcost+=kmin;\n\t \n\treturn nc;\n}\n \nvoid mincost(int city)\n{\n\tint ncity;\n\t \n\tcompleted[city]=1;\n\t \n\tcout &lt;&lt; city &lt;&lt; &quot;---&gt;&quot;;\n\tncity=least(city);\n\t \n\tif(ncity==999)\n\t{\n\t\tncity=0;\n\t\tcout &lt;&lt; ncity;\n\t\tcost+=cities[city][ncity];\n\t\t \n\t\treturn;\n\t}\n\t \n\tmincost(ncity);\n}\n \n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">#include<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iostream<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">#include<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iomanip<\/span><span style=\"color: #F97583\">&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">namespace<\/span><span style=\"color: #E1E4E8\"> std;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int cities[<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">][<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">],completed[<\/span><span style=\"color: #79B8FF\">10<\/span><span style=\"color: #E1E4E8\">],n,cost<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">takeInput<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">least<\/span><span style=\"color: #E1E4E8\">(int );<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">mincost<\/span><span style=\"color: #E1E4E8\">(int);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">takeInput<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">nn<\/span><span style=\"color: #9ECBFF\">The Path is:<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">mincost<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">); <\/span><span style=\"color: #6A737D\">\/\/passing 0 because starting vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">nn<\/span><span style=\"color: #9ECBFF\">Minimum cost is &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> cost <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">takeInput<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of cities: &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the Cost Matrix<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> cities[i][j];\t\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcompleted[i]<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">nn<\/span><span style=\"color: #9ECBFF\">The cost list is:&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">( i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;j <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n;j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> cities[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">int <\/span><span style=\"color: #B392F0\">least<\/span><span style=\"color: #E1E4E8\">(int c)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint i,nc<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint min<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">,kmin;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n;i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">((cities[c][i]<\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\">(completed[i]<\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(cities[c][i]<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\">cities[i][c] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> min)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tmin<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">cities[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">]<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\">cities[c][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tkmin<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">cities[c][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\tnc<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t}\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(min<\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcost<\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\">kmin;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> nc;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">mincost<\/span><span style=\"color: #E1E4E8\">(int city)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tint ncity;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcompleted[city]<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> city <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;---&gt;&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tncity<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #B392F0\">least<\/span><span style=\"color: #E1E4E8\">(city);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(ncity<\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tncity<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> ncity;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcost<\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\">cities[city][ncity];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">mincost<\/span><span style=\"color: #E1E4E8\">(ncity);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Java Code<\/h4>\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:#24292e\"><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=\"import java.util.Scanner;\npublic class TravelingSalesmanProblem {\n    private static int[][] cities;\n    private static int[] completed;\n    private static int n;\n    private static int cost;\n    public static void main(String[] args) {\n        takeInput();\n        System.out.println(&quot;nnThe Path is:&quot;);\n        minCost(0); \/\/ Start from vertex 0\n        System.out.println(&quot;nnMinimum cost is &quot; + cost);\n    }\n    private static void takeInput() {\n        Scanner scanner = new Scanner(System.in);\n        System.out.print(&quot;Enter the number of cities: &quot;);\n        n = scanner.nextInt();\n        cities = new int[n][n];\n        completed = new int[n];\n        System.out.println(&quot;nEnter the Cost Matrix&quot;);\n        for (int i = 0; i &lt; n; i++) {\n            for (int j = 0; j &lt; n; j++)\n                cities[i][j] = scanner.nextInt();\n            completed[i] = 0;\n        }\n        System.out.println(&quot;nnThe cost list is:&quot;);\n        for (int i = 0; i &lt; n; i++) {\n            System.out.println();\n            for (int j = 0; j &lt; n; j++)\n                System.out.print(&quot;t&quot; + cities[i][j]);\n        }\n    }\n    private static int least(int c) {\n        int nc = 999;\n        int min = 999;\n        int kmin = 0;\n        for (int i = 0; i &lt; n; i++) {\n            if (cities[c][i] != 0 &amp;&amp; completed[i] == 0) {\n                if (cities[c][i] + cities[i][c] &lt; min) {\n                    min = cities[i][0] + cities[c][i];\n                    kmin = cities[c][i];\n                    nc = i;\n                }\n            }\n        }\n        if (min != 999)\n            cost += kmin;\n        return nc;\n    }\n    private static void minCost(int city) {\n        completed[city] = 1;\n        System.out.print(city + &quot;---&gt;&quot;);\n        int ncity = least(city);\n        if (ncity == 999) {\n            ncity = 0;\n            System.out.print(ncity);\n            cost += cities[city][ncity];\n            return;\n        }\n        minCost(ncity);\n    }\n}\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.Scanner;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">TravelingSalesmanProblem<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] cities;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] completed;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> n;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> cost;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">String<\/span><span style=\"color: #E1E4E8\">[] <\/span><span style=\"color: #FFAB70\">args<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">takeInput<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">nn<\/span><span style=\"color: #9ECBFF\">The Path is:&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">minCost<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">); <\/span><span style=\"color: #6A737D\">\/\/ Start from vertex 0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">nn<\/span><span style=\"color: #9ECBFF\">Minimum cost is &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> cost);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">takeInput<\/span><span style=\"color: #E1E4E8\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        Scanner scanner <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Scanner<\/span><span style=\"color: #E1E4E8\">(System.in);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of cities: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        n <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextInt<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        cities <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[n][n];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        completed <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[n];<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">n<\/span><span style=\"color: #9ECBFF\">Enter the Cost Matrix&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                cities[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextInt<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            completed[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">nn<\/span><span style=\"color: #9ECBFF\">The cost list is:&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">t<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> cities[i][j]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">least<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">c<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> nc <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> min <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> kmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (cities[c][i] <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> completed[i] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (cities[c][i] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> cities[i][c] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> min) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    min <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cities[i][<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> cities[c][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    kmin <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cities[c][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    nc <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (min <\/span><span style=\"color: #F97583\">!=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            cost <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> kmin;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> nc;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">minCost<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">city<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        completed[city] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(city <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;---&gt;&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> ncity <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">least<\/span><span style=\"color: #E1E4E8\">(city);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (ncity <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">999<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            ncity <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(ncity);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            cost <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> cities[city][ncity];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">minCost<\/span><span style=\"color: #E1E4E8\">(ncity);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graph<\/h4>\n\n\n\n<p>For this program lets consider the following graph<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-677 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"Enter the number of cities: 5\nEnter the Cost Matrix\n0 3 1 7 9\n3 0 4 2 5\n1 4 0 5 6\n7 2 5 0 4\n9 5 6 4 0\nThe cost list is:\n\t0\t3\t1\t7\t9\n\t3\t0\t4\t2\t5\n\t1\t4\t0\t5\t6\n\t7\t2\t5\t0\t4\n\t9\t5\t6\t4\t0\nThe Path is:\n0---&gt;2---&gt;1---&gt;3---&gt;4---&gt;0\nMinimum cost is 20\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">cities<\/span><span style=\"color: #E1E4E8\">: <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the Cost Matrix<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The cost list <\/span><span style=\"color: #B392F0\">is<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">7<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">9<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">6<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">The Path <\/span><span style=\"color: #B392F0\">is<\/span><span style=\"color: #E1E4E8\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #F97583\">---&gt;<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">---&gt;<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #F97583\">---&gt;<\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #F97583\">---&gt;<\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #F97583\">---&gt;<\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Minimum cost is <\/span><span style=\"color: #79B8FF\">20<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Minimum Cost Tour<\/h4>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-678 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/TSP_Solution.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<h3 class=\"wp-block-heading\" id=\"P13b\">Hamiltonian Cycles<\/h3>\n\n\n\n<p>Design and implement C++\/Java Program to find all Hamiltonian Cycles in a connected undirected Graph G of n vertices using backtracking principle.<\/p>\n\n\n\n<h4 class=\"wp-block-heading\">C++ Code<\/h4>\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:#24292e\"><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=\"\/* C++ program for solution of Hamiltonian\nCycle problem using backtracking *\/\n#include &lt;bits\/stdc++.h&gt;\nusing namespace std;\n\/\/ Number of vertices in the graph\n#define V 5\nvoid printSolution(int path[]);\n\/* A utility function to check if\nthe vertex v can be added at index 'pos'\nin the Hamiltonian Cycle constructed\nso far (stored in 'path[]') *\/\nbool isSafe(int v, bool graph[V][V],\n\t\t\tint path[], int pos)\n{\n\t\/* Check if this vertex is an adjacent\n\tvertex of the previously added vertex. *\/\n\tif (graph [path[pos - 1]][ v ] == 0)\n\t\treturn false;\n\t\/* Check if the vertex has already been included.\n\tThis step can be optimized by creating\n\tan array of size V *\/\n\tfor (int i = 0; i &lt; pos; i++)\n\t\tif (path[i] == v)\n\t\t\treturn false;\n\treturn true;\n}\n\/* A recursive utility function\nto solve hamiltonian cycle problem *\/\nbool hamCycleUtil(bool graph[V][V],\n\t\t\t\tint path[], int pos)\n{\n\t\/* base case: If all vertices are\n\tincluded in Hamiltonian Cycle *\/\n\tif (pos == V)\n\t{\n\t\t\/\/ And if there is an edge from the\n\t\t\/\/ last included vertex to the first vertex\n\t\tif (graph[path[pos - 1]][path[0]] == 1)\n\t\t\treturn true;\n\t\telse\n\t\t\treturn false;\n\t}\n\t\/\/ Try different vertices as a next candidate\n\t\/\/ in Hamiltonian Cycle. We don't try for 0 as\n\t\/\/ we included 0 as starting point in findHamCycle()\n\tfor (int v = 1; v &lt; V; v++)\n\t{\n\t\t\/* Check if this vertex can be added\n\t\t\/\/ to Hamiltonian Cycle *\/\n\t\tif (isSafe(v, graph, path, pos))\n\t\t{\n\t\t\tpath[pos] = v;\n\t\t\t\/* recur to construct rest of the path *\/\n\t\t\tif (hamCycleUtil (graph, path, pos + 1) == true)\n\t\t\t\treturn true;\n\t\t\t\/* If adding vertex v doesn't lead to a solution,\n\t\t\tthen remove it *\/\n\t\t\tpath[pos] = -1;\n\t\t}\n\t}\n\t\/* If no vertex can be added to\n\tHamiltonian Cycle constructed so far,\n\tthen return false *\/\n\treturn false;\n}\n\/* This function solves the Hamiltonian Cycle problem\nusing Backtracking. It mainly uses hamCycleUtil() to\nsolve the problem. It returns false if there is no\nHamiltonian Cycle possible, otherwise return true\nand prints the path. Please note that there may be\nmore than one solutions, this function prints one\nof the feasible solutions. *\/\nbool findHamCycle(bool graph[V][V])\n{\n\tint *path = new int[V];\n\tfor (int i = 0; i &lt; V; i++)\n\t\tpath[i] = -1;\n\t\/* Let us put vertex 0 as the first vertex in the path.\n\tIf there is a Hamiltonian Cycle, then the path can be\n\tstarted from any point of the cycle as the graph is undirected *\/\n\tpath[0] = 0;\n\tif (hamCycleUtil(graph, path, 1) == false )\n\t{\n\t\tcout &lt;&lt; &quot;nSolution does not exist for this graph&quot; &lt;&lt; endl;\n\t\treturn false;\n\t}\n\tprintSolution(path);\n\treturn true;\n}\n\/* A utility function to print solution *\/\nvoid printSolution(int path[])\n{\n\tcout &lt;&lt; &quot;Solution Exists:&quot;\n\t\t\t&quot; Following is one Hamiltonian Cycle n&quot;;\n\tfor (int i = 0; i &lt; V; i++)\n\t\tcout &lt;&lt; path[i] &lt;&lt; &quot; &quot;;\n\t\/\/ Let us print the first vertex again\n\t\/\/ to show the complete cycle\n\tcout &lt;&lt; path[0] &lt;&lt; &quot; &quot;;\n\tcout &lt;&lt; endl;\n}\n\/\/ Driver Code\nint main()\n{\n\tint iNum;\n\tbool g1[V][V], g2[V][V];\n\t\n\tcout &lt;&lt; &quot;nEnter the number of nodes in the first graph : &quot;;\n\tcin &gt;&gt; iNum;\n\tcout &lt;&lt; &quot;nEnter the adjacency matrix of the first graph&quot; &lt;&lt; endl;\t\t\t\t\t\t\n\tfor(int i=0; i&lt;iNum; i++)\n\t{\n\t\tfor(int j=0; j&lt;iNum; j++)\n\t\t{\n\t\t\tcin &gt;&gt; g1[i][j];\n\t\t}\n\t}\n\t\n\t\/\/ Print the solution\n\tfindHamCycle(g1);\n\t\n\tcout &lt;&lt; &quot;nEnter the number of nodes in the second graph : &quot;;\n\tcin &gt;&gt; iNum;\n\tcout &lt;&lt; &quot;nEnter the adjacency matrix of the second graph&quot; &lt;&lt; endl;\t\t\t\t\t\t\n\tfor(int i=0; i&lt;iNum; i++)\n\t{\n\t\tfor(int j=0; j&lt;iNum; j++)\n\t\t{\n\t\t\tcin &gt;&gt; g2[i][j];\n\t\t}\n\t}\n\t\/\/ Print the solution\n\tfindHamCycle(g2);\n\treturn 0;\n}\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #6A737D\">\/* C++ program for solution of Hamiltonian<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">Cycle problem using backtracking *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#include<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&lt;bits\/stdc++.h&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">using<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">namespace<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">std<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ Number of vertices in the graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">#define<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">V<\/span><span style=\"color: #E1E4E8\"> 5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">printSolution<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">[]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* A utility function to check if<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">the vertex v can be added at index &#39;pos&#39;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">in the Hamiltonian Cycle constructed<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">so far (stored in &#39;path[]&#39;) *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">isSafe<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">v<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">graph<\/span><span style=\"color: #E1E4E8\">[V][V],<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">pos<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/* Check if this vertex is an adjacent<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tvertex of the previously added vertex. *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (graph [path[pos <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">]][ v ] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/* Check if the vertex has already been included.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tThis step can be optimized by creating<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tan array of size V *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> pos; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (path[i] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> v)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* A recursive utility function<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">to solve hamiltonian cycle problem *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">hamCycleUtil<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">graph<\/span><span style=\"color: #E1E4E8\">[V][V],<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">[], <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">pos<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/* base case: If all vertices are<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tincluded in Hamiltonian Cycle *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (pos <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> V)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\/\/ And if there is an edge from the<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\/\/ last included vertex to the first vertex<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (graph[path[pos <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">]][path[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">]] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ Try different vertices as a next candidate<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ in Hamiltonian Cycle. We don&#39;t try for 0 as<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ we included 0 as starting point in findHamCycle()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; v <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> V; v<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\/* Check if this vertex can be added<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\/\/ to Hamiltonian Cycle *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #B392F0\">isSafe<\/span><span style=\"color: #E1E4E8\">(v, graph, path, pos))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tpath[pos] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\t\/* recur to construct rest of the path *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #B392F0\">hamCycleUtil<\/span><span style=\"color: #E1E4E8\"> (graph, path, pos <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\t\/* If adding vertex v doesn&#39;t lead to a solution,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\t\tthen remove it *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tpath[pos] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/* If no vertex can be added to<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tHamiltonian Cycle constructed so far,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tthen return false *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* This function solves the Hamiltonian Cycle problem<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">using Backtracking. It mainly uses hamCycleUtil() to<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">solve the problem. It returns false if there is no<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">Hamiltonian Cycle possible, otherwise return true<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">and prints the path. Please note that there may be<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">more than one solutions, this function prints one<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">of the feasible solutions. *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">findHamCycle<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">graph<\/span><span style=\"color: #E1E4E8\">[V][V])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\">path <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[V];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> V; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tpath[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/* Let us put vertex 0 as the first vertex in the path.<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tIf there is a Hamiltonian Cycle, then the path can be<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\tstarted from any point of the cycle as the graph is undirected *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tpath[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #B392F0\">hamCycleUtil<\/span><span style=\"color: #E1E4E8\">(graph, path, <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\"> )<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;nSolution does not exist for this graph&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">printSolution<\/span><span style=\"color: #E1E4E8\">(path);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/* A utility function to print solution *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">printSolution<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">[])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;Solution Exists:&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\t<\/span><span style=\"color: #9ECBFF\">&quot; Following is one Hamiltonian Cycle n&quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> V; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> path[i] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ Let us print the first vertex again<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ to show the complete cycle<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> path[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/ Driver Code<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">bool<\/span><span style=\"color: #E1E4E8\"> g1[V][V], g2[V][V];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;nEnter the number of nodes in the first graph : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;nEnter the adjacency matrix of the first graph&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;\t\t\t\t\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> g1[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ Print the solution<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">findHamCycle<\/span><span style=\"color: #E1E4E8\">(g1);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;nEnter the number of nodes in the second graph : &quot;<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tcout <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot;nEnter the adjacency matrix of the second graph&quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&lt;&lt;<\/span><span style=\"color: #E1E4E8\"> endl;\t\t\t\t\t\t<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">iNum; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t\tcin <\/span><span style=\"color: #F97583\">&gt;&gt;<\/span><span style=\"color: #E1E4E8\"> g2[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\t\/\/ Print the solution<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #B392F0\">findHamCycle<\/span><span style=\"color: #E1E4E8\">(g2);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Java Code<\/h4>\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:#24292e\"><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=\"import java.util.Scanner;\nclass HamiltonianCycle {\n    private static final int V = 5;\n    \n    private static boolean isSafe(int v, int[][] graph, int[] path, int pos) {\n        if (graph[path[pos - 1]][v] == 0)\n            return false;\n        for (int i = 0; i &lt; pos; i++) {\n            if (path[i] == v)\n                return false;\n        }\n        return true;\n    }\n    private static boolean hamCycleUtil(int[][] graph, int[] path, int pos) {\n        if (pos == V) {\n            if (graph[path[pos - 1]][path[0]] == 1)\n                return true;\n            else\n                return false;\n        }\n        for (int v = 1; v &lt; V; v++) {\n            if (isSafe(v, graph, path, pos)) {\n                path[pos] = v;\n                if (hamCycleUtil(graph, path, pos + 1) == true)\n                    return true;\n                path[pos] = -1;\n            }\n        }\n        return false;\n    }\n    private static boolean findHamCycle(int[][] graph) {\n        int[] path = new int[V];\n        for (int i = 0; i &lt; V; i++)\n            path[i] = -1;\n        path[0] = 0;\n        if (hamCycleUtil(graph, path, 1) == false) {\n            System.out.println(&quot;nSolution does not exist for this graph&quot;);\n            return false;\n        }\n        printSolution(path);\n        return true;\n    }\n    private static void printSolution(int[] path) {\n        System.out.print(&quot;Solution Exists: Following is one Hamiltonian Cycle n&quot;);\n        for (int i = 0; i &lt; V; i++)\n            System.out.print(path[i] + &quot; &quot;);\n        System.out.print(path[0] + &quot; &quot;);\n        System.out.println();\n    }\n    public static void main(String[] args) {\n        int iNum;\n        int[][] g1 = new int[V][V];\n        int[][] g2 = new int[V][V];\n        Scanner scanner = new Scanner(System.in);\n        System.out.print(&quot;Enter the number of nodes in the first graph: &quot;);\n        iNum = scanner.nextInt();\n        System.out.println(&quot;Enter the adjacency matrix of the first graph:&quot;);\n        for (int i = 0; i &lt; iNum; i++) {\n            for (int j = 0; j &lt; iNum; j++) {\n                g1[i][j] = scanner.nextInt();\n            }\n        }\n        findHamCycle(g1);\n        System.out.print(&quot;Enter the number of nodes in the second graph: &quot;);\n        iNum = scanner.nextInt();\n        System.out.println(&quot;Enter the adjacency matrix of the second graph:&quot;);\n        for (int i = 0; i &lt; iNum; i++) {\n            for (int j = 0; j &lt; iNum; j++) {\n                g2[i][j] = scanner.nextInt();\n            }\n        }\n        findHamCycle(g2);\n    }\n}\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.Scanner;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">HamiltonianCycle<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">final<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> V <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">boolean<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">isSafe<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">v<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] <\/span><span style=\"color: #FFAB70\">graph<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">pos<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (graph[path[pos <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">]][v] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> pos; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (path[i] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> v)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">boolean<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">hamCycleUtil<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] <\/span><span style=\"color: #FFAB70\">graph<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">pos<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (pos <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> V) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (graph[path[pos <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">]][path[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">]] <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">; v <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> V; v<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #B392F0\">isSafe<\/span><span style=\"color: #E1E4E8\">(v, graph, path, pos)) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                path[pos] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> v;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #B392F0\">hamCycleUtil<\/span><span style=\"color: #E1E4E8\">(graph, path, pos <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                path[pos] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">boolean<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">findHamCycle<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] <\/span><span style=\"color: #FFAB70\">graph<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] path <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[V];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> V; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            path[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        path[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #B392F0\">hamCycleUtil<\/span><span style=\"color: #E1E4E8\">(graph, path, <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;nSolution does not exist for this graph&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">false<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">printSolution<\/span><span style=\"color: #E1E4E8\">(path);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">return<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">true<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">printSolution<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] <\/span><span style=\"color: #FFAB70\">path<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Solution Exists: Following is one Hamiltonian Cycle n&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> V; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(path[i] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(path[<\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">main<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">String<\/span><span style=\"color: #E1E4E8\">[] <\/span><span style=\"color: #FFAB70\">args<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] g1 <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[V][V];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] g2 <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[V][V];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        Scanner scanner <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Scanner<\/span><span style=\"color: #E1E4E8\">(System.in);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of nodes in the first graph: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        iNum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextInt<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the adjacency matrix of the first graph:&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> iNum; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> iNum; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                g1[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextInt<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">findHamCycle<\/span><span style=\"color: #E1E4E8\">(g1);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the number of nodes in the second graph: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        iNum <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextInt<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the adjacency matrix of the second graph:&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> iNum; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\">; j <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> iNum; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                g2[i][j] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextInt<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">findHamCycle<\/span><span style=\"color: #E1E4E8\">(g2);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">}<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Input Graphs<\/h4>\n\n\n\n<p>Let us consider the following graphs as input for this program<\/p>\n\n\n\n<div class=\"wp-block-columns is-layout-flex wp-container-core-columns-is-layout-28f84493 wp-block-columns-is-layout-flex\">\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h5 class=\"wp-block-heading has-text-align-center\"><strong>Graph 1<\/strong><\/h5>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-683 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton1.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n<\/div>\n\n\n\n<div class=\"wp-block-column is-layout-flow wp-block-column-is-layout-flow\">\n<h5 class=\"wp-block-heading has-text-align-center\"><strong>Graph 2<\/strong><\/h5>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" width=\"1024\" height=\"576\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?resize=1024%2C576&#038;ssl=1\" alt=\"\" class=\"wp-image-684 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?resize=1024%2C576&amp;ssl=1 1024w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?resize=300%2C169&amp;ssl=1 300w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?resize=768%2C432&amp;ssl=1 768w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?resize=1536%2C864&amp;ssl=1 1536w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/Hamilton2.png?w=1920&amp;ssl=1 1920w\" data-sizes=\"(max-width: 1000px) 100vw, 1000px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/576;\" \/><\/a><\/figure>\n<\/div>\n<\/div>\n\n\n\n<h4 class=\"wp-block-heading\">Output<\/h4>\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:#24292e\"><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=\"\nEnter the number of nodes in the first graph : 5\nEnter the adjacency matrix of the first graph\n0 1 0 1 0\n1 0 1 1 1\n0 1 0 0 1\n1 1 0 0 1\n0 1 1 1 0\nSolution Exists: Following is one Hamiltonian Cycle \n0 1 2 4 3 0 \nEnter the number of nodes in the second graph : 5\nEnter the adjacency matrix of the second graph\n0 1 0 1 0\n1 0 1 1 1\n0 1 0 0 1\n1 1 0 0 0\n0 1 1 0 0\nSolution does not exist for this graph\n\" style=\"color:#e1e4e8;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 github-dark\" style=\"background-color: #24292e\" tabindex=\"0\"><code><span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> nodes <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the first <\/span><span style=\"color: #B392F0\">graph<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the adjacency matrix <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> the first graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Solution <\/span><span style=\"color: #B392F0\">Exists<\/span><span style=\"color: #E1E4E8\">: Following is one Hamiltonian Cycle <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">4<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the number <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> nodes <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> the second <\/span><span style=\"color: #B392F0\">graph<\/span><span style=\"color: #E1E4E8\"> : <\/span><span style=\"color: #79B8FF\">5<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Enter the adjacency matrix <\/span><span style=\"color: #F97583\">of<\/span><span style=\"color: #E1E4E8\"> the second graph<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">Solution does not exist for <\/span><span style=\"color: #79B8FF\">this<\/span><span style=\"color: #E1E4E8\"> graph<\/span><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n<\/div>\n\n\n\n<p>If you are also looking for other Lab Manuals, head over to my following blog :<\/p>\n\n\n\n<figure class=\"wp-block-embed is-type-wp-embed is-provider-myblogosphere wp-block-embed-myblogosphere\"><div class=\"wp-block-embed__wrapper\">\n<blockquote class=\"wp-embedded-content\" data-secret=\"CVmYo6Aai2\"><a href=\"https:\/\/moodle.sit.ac.in\/blog\/vtu-lab-manuals-using-foss\/\">VTU Lab Manuals using FOSS<\/a><\/blockquote><iframe class=\"wp-embedded-content lazyload\" sandbox=\"allow-scripts\" security=\"restricted\" style=\"position: absolute; clip: rect(1px, 1px, 1px, 1px);\" title=\"&#8220;VTU Lab Manuals using FOSS&#8221; &#8212; MyBlogosphere\" data-src=\"https:\/\/moodle.sit.ac.in\/blog\/vtu-lab-manuals-using-foss\/embed\/#?secret=neyRLHGGux#?secret=CVmYo6Aai2\" data-secret=\"CVmYo6Aai2\" width=\"500\" height=\"282\" frameborder=\"0\" marginwidth=\"0\" marginheight=\"0\" scrolling=\"no\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" data-load-mode=\"1\"><\/iframe>\n<\/div><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n","protected":false},"excerpt":{"rendered":"<p>Demystifying Algorithms &amp; Solving Problems In this blog post, you will find solutions for the lab component Analysis &amp; Design of Algorithms Lab (BCDL404) course work for the IV semester of VTU university. The solutions to the lab component are coded in C\/C++. We recommend using the Code:Blocks as the integrated development environment (IDE). You [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":672,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"site-container-style":"default","site-container-layout":"default","site-sidebar-layout":"default","disable-article-header":"default","disable-site-header":"default","disable-site-footer":"default","disable-content-area-spacing":"default","_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[3],"tags":[93,89,340,339,17,90,19,94,78,26,27,338,35,43],"class_list":["post-2105","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","tag-4thsemester","tag-algorithms","tag-analysis-design-of-algorithms-lab-manuall","tag-bcdl404","tag-c","tag-c-2","tag-codeblocks","tag-complete-solutions","tag-cse","tag-foss","tag-gcc-compiler","tag-iv-semester","tag-lab-manual","tag-vtu"],"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/daa-tutorial-1.png?fit=250%2C247&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/posts\/2105","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/comments?post=2105"}],"version-history":[{"count":13,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/posts\/2105\/revisions"}],"predecessor-version":[{"id":2571,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/posts\/2105\/revisions\/2571"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/media\/672"}],"wp:attachment":[{"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/media?parent=2105"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/categories?post=2105"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/tags?post=2105"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}