{"id":643,"date":"2023-08-27T16:30:59","date_gmt":"2023-08-27T11:00:59","guid":{"rendered":"https:\/\/moodle.sit.ac.in\/blog\/?p=643"},"modified":"2023-10-18T18:58:05","modified_gmt":"2023-10-18T13:28:05","slug":"design-analysis-of-algorithms-lab-manual-21cs42","status":"publish","type":"post","link":"https:\/\/moodle.sit.ac.in\/blog\/design-analysis-of-algorithms-lab-manual-21cs42\/","title":{"rendered":"Design &amp; Analysis of\u00a0Algorithms Lab Manual &#8211; 21CS42"},"content":{"rendered":"\n<h4 class=\"wp-block-heading has-text-align-center\">Demystifying Algorithms &amp; Solving Problems<\/h4>\n\n\n<p><a href=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/daa-tutorial-1.png?ssl=1\"><img data-recalc-dims=\"1\" decoding=\"async\" class=\"size-full wp-image-672 aligncenter lazyload\" data-src=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/daa-tutorial-1.png?resize=250%2C247&#038;ssl=1\" alt=\"\" width=\"250\" height=\"247\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 250px; --smush-placeholder-aspect-ratio: 250\/247;\" \/><\/a><\/p>\n<p>In this blog post, you will find solutions for the lab component <strong>Design &amp; Analysis of\u00a0Algorithms (21CS42)<\/strong> course work for the IV semester of <strong>VTU<\/strong> university. The solutions to the lab component are coded in <strong>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 <a style=\"pointer-events: none;\" title=\"PPL_21CSL46 Syllabus\" href=\"https:\/\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/03\/PPL_21CSL46.pdf\" target=\"_blank\" rel=\"noopener\"><strong>here<\/strong><\/a>. Along with C++ programs for each question I have provided an equivalent <strong>Java<\/strong> Program as well.<\/p>\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<ol>\n<li><a href=\"#M1\"><span style=\"color: #ff0000;\">Module 1<\/span><\/a>\n<ol type=\"a\">\n<li><a href=\"#P01\"><span style=\"color: #ff0000;\">Selection Sort<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"#M2\"><span style=\"color: #ff0000;\">Module 2<\/span><\/a>\n<ol type=\"a\">\n<li><a href=\"#P02\"><span style=\"color: #ff0000;\">Quick Sort<\/span><\/a><\/li>\n<li><a href=\"#P03\"><span style=\"color: #ff0000;\">Merge Sort<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"#M3\"><span style=\"color: #ff0000;\">Module 3<\/span><\/a>\n<ol type=\"a\">\n<li><a href=\"#P04\"><span style=\"color: #ff0000;\">Knapsack problem using Greedy method.<\/span><\/a><\/li>\n<li><a href=\"#P05\"><span style=\"color: #ff0000;\">Dijkstra&#8217;s Algorithm<\/span><\/a><\/li>\n<li><a href=\"#P06\"><span style=\"color: #ff0000;\">Kruskal&#8217;s Algorithm<\/span><\/a><\/li>\n<li><a href=\"#P07\"><span style=\"color: #ff0000;\">Prim&#8217;s Algorithm<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"#M4\"><span style=\"color: #ff0000;\">Module 4<\/span><\/a>\n<ol type=\"a\">\n<li><a href=\"#P08\"><span style=\"color: #ff0000;\">Floyd&#8217;s Algorithm<\/span><\/a><\/li>\n<li><a href=\"#P09\"><span style=\"color: #ff0000;\">Travelling Sales Person Problem<\/span><\/a><\/li>\n<li><a href=\"#P10\"><span style=\"color: #ff0000;\">0\/1 Knapsack problem<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n<li><a href=\"#M5\"><span style=\"color: #ff0000;\">Module 5<\/span><\/a>\n<ol type=\"a\">\n<li><a href=\"#P11\"><span style=\"color: #ff0000;\">Subset Sum Problem<\/span><\/a><\/li>\n<li><a href=\"#P12\"><span style=\"color: #ff0000;\">Hamiltonian Cycles<\/span><\/a><\/li>\n<\/ol>\n<\/li>\n<\/ol>\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-center\" id=\"M1\">Module 1 <\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P01\">Selection Sort<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">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. Demonstrate using C++\/Java how the brute force method works along with its time complexity analysis: worst case, average case and best case.<\/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: 01SelectionSort.cpp\n*Description\t: Program to sort an array using Merge Sort\n*Author: Prabodh C P\n*Compiler: gcc compiler 7.5.0, Ubuntu 18.04\n*Date: Friday 4 February 2020\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;\n\nclass SelectionSort{\n    vector &lt;int&gt; numList;\n    int iNum;\n    public:\n\n    void fnGenRandArray(int);\n    void fnSortArray(int);\n    void fnDispArray(int);\n    void fnSwap(int &amp;,int &amp;);\n};\n\nint main( int argc, char **argv)\n{\n\n    struct timespec tv;\n    int iChoice, i, iNum;\n    double dStart, dEnd;\n    SelectionSort myListObj;\n\tofstream fout(&quot;SelectPlot.dat&quot;, ios::out);\n    for(;;)\n    {\n        cout &lt;&lt; &quot;\\n1.Plot the Graph\\n2.SelectionSort\\n3.Exit&quot; ;\n        cout &lt;&lt; &quot;\\nEnter your choice\\n&quot;;\n        cin &gt;&gt; iChoice;\n        switch(iChoice)\n        {\n            case 1: for(i=100;i&lt;10000;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(i);\n                        clock_gettime(CLOCK_REALTIME, &amp;tv);\n                        dEnd = tv.tv_sec + tv.tv_nsec\/1000000000.0;\n\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; SelectPlot.dat &gt;.\\n Use a plotting utility\\n&quot;;\n                    break;\n            case 2:\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(iNum);\n                    myListObj.fnSortArray(iNum);\n                    cout &lt;&lt; &quot;\\nSorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray(iNum);\n                    break;\n            case 3:\n                    exit(0);\n        }\n    }\n    fout.close();\n    return 0;\n}\n\nvoid SelectionSort::fnGenRandArray(int n)\n{\n    int i, iVal;\n\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}\n\nvoid SelectionSort::fnDispArray(int n)\n{\n    int i;\n\tfor(i=0;i&lt;n;i++)\n\t{\n        cout &lt;&lt; setw(8) &lt;&lt; numList[i] &lt;&lt; endl;\n    }\n}\n\n\nvoid SelectionSort::fnSortArray(int n)\n{\n\tint i, j, min_idx;\n\tfor(i=0;i&lt;n-1;i++)\n\t{\n\t\tmin_idx = i;\n\t\tfor(j=i+1;j&lt;n;j++)\n\t\t{\n\t\t\tif(numList[j] &lt; numList[min_idx])\n\t\t\t\tmin_idx = j;\n\t\t}\n\t\tfnSwap(numList[i], numList[min_idx]);\n\t}\n}\n\nvoid SelectionSort::fnSwap(int &amp;a,int &amp;b)\n{\n\tint t;\n\tt = a;\ta = b;\tb = 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: 01SelectionSort.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to sort an array using Merge Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler: gcc compiler 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date: Friday 4 February 2020<\/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;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\">fnSortArray<\/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 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<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">&amp;<\/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: #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;SelectPlot.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.Plot the Graph<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">2.SelectionSort<\/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 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\">10000<\/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\">fnSortArray<\/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\">                        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; SelectPlot.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\">2<\/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\">(iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/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\">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\">(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 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: #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>\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\">}<\/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 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;<\/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\">        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>\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\">fnSortArray<\/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, min_idx;<\/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<\/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{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tmin_idx <\/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\">(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\">\t\t\t\tmin_idx <\/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<\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(numList[i], numList[min_idx]);<\/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\">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;\ta <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> b;\tb <\/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><\/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.ArrayList;\nimport java.util.List;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.PrintWriter;\n\npublic class SelectionSort {\n    private List&lt;Integer&gt; numList;\n\n    public SelectionSort() {\n        numList = new ArrayList&lt;&gt;();\n    }\n\n    public void fnGenRandArray(int n) {\n        int i, iVal;\n        for (i = 0; i &lt; n; i++) {\n            iVal = (int) (Math.random() * 10000);\n            numList.add(iVal);\n        }\n    }\n\n    public void fnDispArray(int n) {\n        for (int i = 0; i &lt; n; i++) {\n            System.out.println(String.format(&quot;%8d&quot;, numList.get(i)));\n        }\n    }\n\n    public void fnSortArray(int n) {\n        int i, j, min_idx;\n        for (i = 0; i &lt; n - 1; i++) {\n            min_idx = i;\n            for (j = i + 1; j &lt; n; j++) {\n                if (numList.get(j) &lt; numList.get(min_idx))\n                    min_idx = j;\n            }\n            fnSwap(i, min_idx);\n        }\n    }\n\n    public void fnSwap(int a, int b) {\n        int temp = numList.get(a);\n        numList.set(a, numList.get(b));\n        numList.set(b, temp);\n    }\n\n    public static void main(String[] args) {\n        long startTime, endTime;\n        int iChoice, iNum;\n        SelectionSort myListObj = new SelectionSort();\n\n        try (PrintWriter fout = new PrintWriter(new FileWriter(&quot;SelectPlot.dat&quot;))) {\n            for (;;) {\n                System.out.println(&quot;\\n1.SelectionSort\\n2.Plot the Graph\\n3.Exit&quot;);\n                System.out.println(&quot;Enter your choice&quot;);\n                iChoice = Integer.parseInt(System.console().readLine());\n\n                switch (iChoice) {\n                    case 1:\n                        System.out.print(&quot;Enter number of elements to sort : &quot;);\n                        iNum = Integer.parseInt(System.console().readLine());\n                        myListObj.fnGenRandArray(iNum);\n\n                        System.out.println(&quot;\\nUnsorted Array&quot;);\n                        myListObj.fnDispArray(iNum);\n\n                        myListObj.fnSortArray(iNum);\n\n                        System.out.println(&quot;\\nSorted Array&quot;);\n                        myListObj.fnDispArray(iNum);\n                        break;\n                    case 2:\n                        for (int i = 100; i &lt; 10000; i += 100) {\n                            myListObj.fnGenRandArray(i);\n\n                            startTime = System.nanoTime();\n                            myListObj.fnSortArray(i);\n                            endTime = System.nanoTime();\n\/\/\t\t\t\t\t\t\tSystem.out.println(i + &quot;\\t&quot; + (endTime - startTime));\n                            fout.println(i + &quot;\\t&quot; + ((endTime - startTime) \/ 1e9));\n                        }\n\n                        System.out.println(&quot;\\nData File generated and stored in file &lt; SelectPlot.dat &gt;. Use a plotting utility&quot;);\n                        break;\n                    case 3:\n                        System.exit(0);\n                }\n            }\n        } catch (IOException e) {\n            System.out.println(&quot;Error: &quot; + e.getMessage());\n        }\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.ArrayList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.List;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.FileWriter;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.IOException;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.PrintWriter;<\/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\">SelectionSort<\/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\"> List&lt;<\/span><span style=\"color: #F97583\">Integer<\/span><span style=\"color: #E1E4E8\">&gt; numList;<\/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: #B392F0\">SelectionSort<\/span><span style=\"color: #E1E4E8\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> ArrayList&lt;&gt;();<\/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\">public<\/span><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 style=\"color: #FFAB70\">n<\/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\"> i, iVal;<\/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\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/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: #F97583\">int<\/span><span style=\"color: #E1E4E8\">) (Math.<\/span><span style=\"color: #B392F0\">random<\/span><span style=\"color: #E1E4E8\">() <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> <\/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\">add<\/span><span style=\"color: #E1E4E8\">(iVal);<\/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\">public<\/span><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 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 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\">(String.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%8d&quot;<\/span><span style=\"color: #E1E4E8\">, numList.<\/span><span style=\"color: #B392F0\">get<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSortArray<\/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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, min_idx;<\/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\"> n <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> <\/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\">            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: #E1E4E8\"> <\/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\">                <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(j) <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(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 style=\"color: #E1E4E8\">            <\/span><span style=\"color: #B392F0\">fnSwap<\/span><span style=\"color: #E1E4E8\">(i, min_idx);<\/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\">public<\/span><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<\/span><span style=\"color: #E1E4E8\"> <\/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: #FFAB70\">b<\/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\"> temp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(a, numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(b));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(b, temp);<\/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\">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\">long<\/span><span style=\"color: #E1E4E8\"> startTime, endTime;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iChoice, iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        SelectionSort myListObj <\/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\">SelectionSort<\/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\">try<\/span><span style=\"color: #E1E4E8\"> (PrintWriter fout <\/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\">PrintWriter<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">FileWriter<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;SelectPlot.dat&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>\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\">1.SelectionSort<\/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\">                System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter your choice&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                iChoice <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> Integer.<\/span><span style=\"color: #B392F0\">parseInt<\/span><span style=\"color: #E1E4E8\">(System.<\/span><span style=\"color: #B392F0\">console<\/span><span style=\"color: #E1E4E8\">().<\/span><span style=\"color: #B392F0\">readLine<\/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\">switch<\/span><span style=\"color: #E1E4E8\"> (iChoice) {<\/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: #F97583\">:<\/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 number of elements to sort : &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\"> Integer.<\/span><span style=\"color: #B392F0\">parseInt<\/span><span style=\"color: #E1E4E8\">(System.<\/span><span style=\"color: #B392F0\">console<\/span><span style=\"color: #E1E4E8\">().<\/span><span style=\"color: #B392F0\">readLine<\/span><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\">(iNum);<\/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\">Unsorted Array&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iNum);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(iNum);<\/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\">Sorted Array&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(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 style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">:<\/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\">100<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">10000<\/span><span style=\"color: #E1E4E8\">; i <\/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: #E1E4E8\">                            myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            startTime <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> System.<\/span><span style=\"color: #B392F0\">nanoTime<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            endTime <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> System.<\/span><span style=\"color: #B392F0\">nanoTime<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">\/\/\t\t\t\t\t\t\tSystem.out.println(i + &quot;\\t&quot; + (endTime - startTime));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            fout.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">+<\/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\"> ((endTime <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> startTime) <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1e9<\/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\">\\n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; SelectPlot.dat &gt;. Use a plotting utility&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: #F97583\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        System.<\/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\">        } <\/span><span style=\"color: #F97583\">catch<\/span><span style=\"color: #E1E4E8\"> (IOException <\/span><span style=\"color: #FFAB70\">e<\/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;Error: &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> e.<\/span><span style=\"color: #B392F0\">getMessage<\/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>\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=\"1.SelectionSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n1\n\nEnter number of elements to sort : 4\n\nUnsorted Array\n    2465\n    1009\n    9680\n    8206\n\nSorted Array\n    1009\n    2465\n    8206\n    9680\n\n1.SelectionSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n2\n\nData File generated and stored in file &lt; SelectPlot.dat &gt;.\n Use a plotting utility\n\n1.SelectionSort\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.SelectionSort<\/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\">4<\/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\">2465<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">1009<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">9680<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">8206<\/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\">1009<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">2465<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">8206<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">9680<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">1.SelectionSort<\/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\"> SelectPlot.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.SelectionSort<\/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 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 SelectPlot.dat \n100\t0.0001306533813\n200\t0.0004434585571\n300\t0.0009500980377\n400\t0.001492977142\n500\t0.002258777618\n600\t0.003211975098\n700\t0.004380464554\n800\t0.005626916885\n900\t0.006759643555\n1000 0.005615472794\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 SelectPlot.dat <\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">100<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0001306533813<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">200<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0004434585571<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">300<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.0009500980377<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">400<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.001492977142<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">500<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.002258777618<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">600<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.003211975098<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">700<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.004380464554<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">800<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.005626916885<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">900<\/span><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #79B8FF\">0.006759643555<\/span><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">1000<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">0.005615472794<\/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:#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 script file for plotting data in file &quot;SelectPlot.dat&quot;\n# This file is called       01SelectPlot.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;SelectPlot.png&quot;\nplot &quot;SelectPlot.dat&quot; t 'Selection Sort' with lines\" 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 script file for plotting data <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> file <\/span><span style=\"color: #9ECBFF\">&quot;SelectPlot.dat&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"># This file is called       01SelectPlot.gpl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set terminal png font arial<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set title <\/span><span style=\"color: #9ECBFF\">&quot;Time Complexity for Selection Sort&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set autoscale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set xlabel <\/span><span style=\"color: #9ECBFF\">&quot;Size of Input&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set ylabel <\/span><span style=\"color: #9ECBFF\">&quot;Sorting Time (microseconds)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set grid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set output <\/span><span style=\"color: #9ECBFF\">&quot;SelectPlot.png&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">plot <\/span><span style=\"color: #9ECBFF\">&quot;SelectPlot.dat&quot;<\/span><span style=\"color: #E1E4E8\"> t <\/span><span style=\"color: #9ECBFF\">&#39;Selection Sort&#39;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">with<\/span><span style=\"color: #E1E4E8\"> 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\/2023\/06\/SelectPlot.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\/SelectPlot.png?resize=640%2C480&#038;ssl=1\" alt=\"\" class=\"wp-image-648 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/SelectPlot.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/SelectPlot.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<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\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"M2\">Module 2<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P02\">Quick Sort<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">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. Demonstrate using C++\/Java how the divide-and-conquer method works along with its time complexity analysis: worst case, average case and best case.<\/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: 03QuickSort.c\n*Description\t: Program to sort an array using Quick Sort\n*Author\t\t\t: Prabodh C P\n*Compiler\t\t: gcc compiler 7.5.0, Ubuntu 18.04\n*Date\t\t\t: Friday 4 February 2020\n******************************************************************************\/\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;\n\nclass QuickSort{\n    vector &lt;int&gt; numList;\n    int iNum;\n    public:\n\n    void fnGenRandArray(int);\n    void fnQuickSort(int, int);\n    void fnDispArray(int);\n    int fnPartition(int ,int );\n    void fnSwap(int&amp;, int&amp;);\n};\n\nint main( int argc, char **argv)\n{\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 Sort\\n2.Plot the Graph\\n3.Exit&quot; ;\n        cout &lt;&lt; &quot;\\nEnter your choice\\n&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(iNum);\n                    myListObj.fnQuickSort(0,iNum-1);\n                    cout &lt;&lt; &quot;\\nSorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray(iNum);\n                    break;\n\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\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 utility\\n&quot;;\n                    break;\n            case 3:\n                    exit(0);\n        }\n    }\n    fout.close();\n    return 0;\n}\n\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\/******************************************************************************\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}\n\nvoid QuickSort::fnGenRandArray(int n)\n{\n    int i, iVal;\n\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}\n\nvoid QuickSort::fnDispArray(int n)\n{\n    int i;\n\tfor(i=0;i&lt;n;i++)\n\t{\n        cout &lt;&lt; setw(8) &lt;&lt; numList[i] &lt;&lt; endl;\n    }\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: 03QuickSort.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\t: gcc compiler 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t\t: Friday 4 February 2020<\/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 style=\"color: #F97583\">int<\/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\">(iNum);<\/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\">(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\">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>\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\">}<\/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 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;<\/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\">        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\">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.ArrayList;\nimport java.util.List;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.PrintWriter;\n\npublic class QuickSort {\n    private List&lt;Integer&gt; numList;\n\n    public QuickSort() {\n        numList = new ArrayList&lt;&gt;();\n    }\n\n    public void fnGenRandArray(int n) {\n        int i, iVal;\n        for (i = 0; i &lt; n; i++) {\n            iVal = (int) (Math.random() * 10000);\n            numList.add(iVal);\n        }\n    }\n\n    public void fnDispArray(int n) {\n        for (int i = 0; i &lt; n; i++) {\n            System.out.println(String.format(&quot;%8d&quot;, numList.get(i)));\n        }\n    }\n\n    public void fnSortArray(int l, int r) {\n        if (l &lt; r) {\n            int s = fnPartition(l, r);\n            fnSortArray(l, s - 1);\n            fnSortArray(s + 1, r);\n        }\n    }\n\n    public int fnPartition(int l, int r) {\n        int pivot = numList.get(l);\n        int i = l + 1;\n        int j = r;\n        while (i &lt;= j) {\n            if (numList.get(i) &lt;= pivot) {\n                i++;\n            } else if (numList.get(j) &gt; pivot) {\n                j--;\n            } else {\n                int temp = numList.get(i);\n                numList.set(i, numList.get(j));\n                numList.set(j, temp);\n                i++;\n                j--;\n            }\n        }\n        int temp = numList.get(l);\n        numList.set(l, numList.get(j));\n        numList.set(j, temp);\n        return j;\n    }\n\n    public static void main(String[] args) {\n        long startTime, endTime;\n        int iChoice, iNum;\n        QuickSort myListObj = new QuickSort();\n\n        try (PrintWriter fout = new PrintWriter(new FileWriter(&quot;QuickPlot.dat&quot;))) {\n            for (;;) {\n                System.out.println(&quot;\\n1.Quick Sort\\n2.Plot the Graph\\n3.Exit&quot;);\n                System.out.println(&quot;Enter your choice&quot;);\n                iChoice = Integer.parseInt(System.console().readLine());\n\n                switch (iChoice) {\n                    case 1:\n                        System.out.print(&quot;Enter number of elements to sort : &quot;);\n                        iNum = Integer.parseInt(System.console().readLine());\n                        myListObj.fnGenRandArray(iNum);\n\n                        System.out.println(&quot;\\nUnsorted Array&quot;);\n                        myListObj.fnDispArray(iNum);\n\n                        myListObj.fnSortArray(0, iNum - 1);\n\n                        System.out.println(&quot;\\nSorted Array&quot;);\n                        myListObj.fnDispArray(iNum);\n                        break;\n                    case 2:\n                        for (int i = 100; i &lt; 100000; i += 100) {\n                            myListObj.fnGenRandArray(i);\n\n                            startTime = System.nanoTime();\n                            myListObj.fnSortArray(0, i - 1);\n                            endTime = System.nanoTime();\n\n                            fout.println(i + &quot;\\t&quot; + ((endTime - startTime) \/ 1e9));\n                        }\n\n                        System.out.println(&quot;\\nData File generated and stored in file &lt; QuickPlot.dat &gt;. Use a plotting utility&quot;);\n                        break;\n                    case 3:\n                        System.exit(0);\n                }\n            }\n        } catch (IOException e) {\n            System.out.println(&quot;Error: &quot; + e.getMessage());\n        }\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.ArrayList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.List;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.FileWriter;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.IOException;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.PrintWriter;<\/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\">QuickSort<\/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\"> List&lt;<\/span><span style=\"color: #F97583\">Integer<\/span><span style=\"color: #E1E4E8\">&gt; numList;<\/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: #B392F0\">QuickSort<\/span><span style=\"color: #E1E4E8\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> ArrayList&lt;&gt;();<\/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\">public<\/span><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 style=\"color: #FFAB70\">n<\/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\"> i, iVal;<\/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\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/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: #F97583\">int<\/span><span style=\"color: #E1E4E8\">) (Math.<\/span><span style=\"color: #B392F0\">random<\/span><span style=\"color: #E1E4E8\">() <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> <\/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\">add<\/span><span style=\"color: #E1E4E8\">(iVal);<\/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\">public<\/span><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 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 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\">(String.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%8d&quot;<\/span><span style=\"color: #E1E4E8\">, numList.<\/span><span style=\"color: #B392F0\">get<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSortArray<\/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 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\">            <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> s <\/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\">            <\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(l, s <\/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: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(s <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, r);<\/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\">public<\/span><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: #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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> pivot <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(l);<\/span><\/span>\n<span class=\"line\"><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\"> l <\/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\">int<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> r;<\/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\">&lt;=<\/span><span style=\"color: #E1E4E8\"> j) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(i) <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> pivot) {<\/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 style=\"color: #F97583\">else<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(j) <\/span><span style=\"color: #F97583\">&gt;<\/span><span style=\"color: #E1E4E8\"> pivot) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                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\">else<\/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\"> temp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(i, numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(j));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(j, temp);<\/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\">                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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> temp <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(l);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(l, numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(j));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(j, temp);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/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: #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\">long<\/span><span style=\"color: #E1E4E8\"> startTime, endTime;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iChoice, iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        QuickSort myListObj <\/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\">QuickSort<\/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\">try<\/span><span style=\"color: #E1E4E8\"> (PrintWriter fout <\/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\">PrintWriter<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">FileWriter<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;QuickPlot.dat&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>\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\">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\">                System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter your choice&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                iChoice <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> Integer.<\/span><span style=\"color: #B392F0\">parseInt<\/span><span style=\"color: #E1E4E8\">(System.<\/span><span style=\"color: #B392F0\">console<\/span><span style=\"color: #E1E4E8\">().<\/span><span style=\"color: #B392F0\">readLine<\/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\">switch<\/span><span style=\"color: #E1E4E8\"> (iChoice) {<\/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: #F97583\">:<\/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 number of elements to sort : &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\"> Integer.<\/span><span style=\"color: #B392F0\">parseInt<\/span><span style=\"color: #E1E4E8\">(System.<\/span><span style=\"color: #B392F0\">console<\/span><span style=\"color: #E1E4E8\">().<\/span><span style=\"color: #B392F0\">readLine<\/span><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\">(iNum);<\/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\">Unsorted Array&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iNum);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/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: #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\">println<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(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 style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">:<\/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\">100<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">100000<\/span><span style=\"color: #E1E4E8\">; i <\/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: #E1E4E8\">                            myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            startTime <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> System.<\/span><span style=\"color: #B392F0\">nanoTime<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/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: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            endTime <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> System.<\/span><span style=\"color: #B392F0\">nanoTime<\/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: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">+<\/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\"> ((endTime <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> startTime) <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1e9<\/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\">\\n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; QuickPlot.dat &gt;. Use a plotting utility&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: #F97583\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        System.<\/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\">        } <\/span><span style=\"color: #F97583\">catch<\/span><span style=\"color: #E1E4E8\"> (IOException <\/span><span style=\"color: #FFAB70\">e<\/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;Error: &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> e.<\/span><span style=\"color: #B392F0\">getMessage<\/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>\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=\"1.Quick Sort\n2.Plot the Graph\n3.Exit\nEnter your choice\n1\n\nEnter number of elements to sort : 5\n\nUnsorted Array\n    2828\n     710\n    6721\n    2947\n    8353\n\nSorted Array\n     710\n    2828\n    2947\n    6721\n    8353\n\n1.Quick Sort\n2.Plot the Graph\n3.Exit\nEnter your choice\n2\n\nData File generated and stored in file &lt; QuickPlot.dat &gt;.\n Use a plotting utility\n\n1.Quick 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.Quick 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\">2828<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">710<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">6721<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">2947<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">8353<\/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\">710<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">2828<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">2947<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">6721<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">8353<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">1.Quick 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\"> QuickPlot.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.Quick 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\">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<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 script file for plotting data in file &quot;QuickPlot.dat&quot;\n# This file is called       03QuickPlot.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:#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 script file for plotting data <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> file <\/span><span style=\"color: #9ECBFF\">&quot;QuickPlot.dat&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"># This file is called       03QuickPlot.gpl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set terminal png font arial<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set title <\/span><span style=\"color: #9ECBFF\">&quot;Time Complexity for Quick Sort&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set autoscale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set xlabel <\/span><span style=\"color: #9ECBFF\">&quot;Size of Input&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set ylabel <\/span><span style=\"color: #9ECBFF\">&quot;Sorting Time (microseconds)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set grid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set output <\/span><span style=\"color: #9ECBFF\">&quot;QuickPlot.png&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">plot <\/span><span style=\"color: #9ECBFF\">&quot;QuickPlot.dat&quot;<\/span><span style=\"color: #E1E4E8\"> t <\/span><span style=\"color: #9ECBFF\">&#39;Quick Sort&#39;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">with<\/span><span style=\"color: #E1E4E8\"> 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 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\/2023\/06\/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\/2023\/06\/QuickPlot.png?resize=640%2C480&#038;ssl=1\" alt=\"\" class=\"wp-image-652 lazyload\" data-srcset=\"https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/QuickPlot.png?w=640&amp;ssl=1 640w, https:\/\/i0.wp.com\/moodle.sit.ac.in\/blog\/wp-content\/uploads\/2023\/06\/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\n\n\n<h3 class=\"wp-block-heading\" id=\"P03\">Merge Sort<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">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. Demonstrate using C++\/Java how the divide-and-conquer method works along with its time complexity analysis: worst case, average case and best case.<\/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: 03MergeSort.cpp\n*Description\t: Program to sort an array using Merge Sort\n*Author: Prabodh C P\n*Compiler: gcc compiler 7.5.0, Ubuntu 18.04\n*Date: Friday 4 February 2020\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;\n\nclass MergeSort{\n    vector &lt;int&gt; numList;\n    int iNum;\n    public:\n\n    void fnGenRandArray(int);\n    void fnSortArray(int, int);\n    void fnDispArray(int);\n    void fnMerge(int ,int ,int);\n};\n\nint main( int argc, char **argv)\n{\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.MergeSort\\n2.Plot the Graph\\n3.Exit&quot; ;\n        cout &lt;&lt; &quot;\\nEnter your choice\\n&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(iNum);\n                    myListObj.fnSortArray(0,iNum-1);\n                    cout &lt;&lt; &quot;\\nSorted Array&quot; &lt;&lt; endl;\n                    myListObj.fnDispArray(iNum);\n                    break;\n\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\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 utility\\n&quot;;\n                    break;\n            case 3:\n                    exit(0);\n        }\n    }\n    fout.close();\n    return 0;\n}\n\nvoid MergeSort::fnGenRandArray(int n)\n{\n    int i, iVal;\n\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}\n\nvoid MergeSort::fnDispArray(int n)\n{\n    int i;\n\tfor(i=0;i&lt;n;i++)\n\t{\n        cout &lt;&lt; setw(8) &lt;&lt; numList[i] &lt;&lt; endl;\n    }\n}\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}\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:#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: 03MergeSort.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description\t: Program to sort an array using Merge Sort<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Author: Prabodh C P<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Compiler: gcc compiler 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date: Friday 4 February 2020<\/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;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\">MergeSort<\/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\">fnSortArray<\/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 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\">fnMerge<\/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: #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\">    MergeSort 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;MergePlot.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.MergeSort<\/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\">(iNum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/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\">(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\">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\">fnSortArray<\/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; MergePlot.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: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">MergeSort<\/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>\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\">}<\/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\">MergeSort<\/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\">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;<\/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\">        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>\n<span class=\"line\"><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">MergeSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">low<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">high<\/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\"> mid;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t<\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\">(low<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\tmid<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">(low<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\">high)<\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(low,mid);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(mid<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">,high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\t\t<\/span><span style=\"color: #B392F0\">fnMerge<\/span><span style=\"color: #E1E4E8\">(low,mid,high);<\/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\">MergeSort<\/span><span style=\"color: #E1E4E8\">::<\/span><span style=\"color: #B392F0\">fnMerge<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">low<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">mid<\/span><span style=\"color: #E1E4E8\">,<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">high<\/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;int&gt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">b<\/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\">  i,j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\ti<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">low;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\tj<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">mid<\/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\">int<\/span><span style=\"color: #E1E4E8\"> k<\/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 style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">mid <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> j<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">high)<\/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\">(numList[i]<\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">numList[j])<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            b.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(numList[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\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            b.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(numList[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<\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\">(i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">mid)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        b.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(numList[i<\/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: #F97583\">while<\/span><span style=\"color: #E1E4E8\">(j<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        b.<\/span><span style=\"color: #B392F0\">push_back<\/span><span style=\"color: #E1E4E8\">(numList[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\">for<\/span><span style=\"color: #E1E4E8\"> (i<\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\">low;i<\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\">high;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\">    \tnumList[low<\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\">k] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> b[k];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    \tk<\/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>\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=\"\/\/MergeSort.java\nimport java.util.ArrayList;\nimport java.util.List;\nimport java.io.FileWriter;\nimport java.io.IOException;\nimport java.io.PrintWriter;\n\npublic class MergeSort {\n    private List&lt;Integer&gt; numList;\n\n    public MergeSort() {\n        numList = new ArrayList&lt;&gt;();\n    }\n\n    public void fnGenRandArray(int n) {\n        int i, iVal;\n        for (i = 0; i &lt; n; i++) {\n            iVal = (int) (Math.random() * 10000);\n            numList.add(iVal);\n        }\n    }\n\n    public void fnDispArray(int n) {\n        for (int i = 0; i &lt; n; i++) {\n            System.out.println(String.format(&quot;%8d&quot;, numList.get(i)));\n        }\n    }\n\n    public void fnSortArray(int low, int high) {\n        if (low &lt; high) {\n            int mid = (low + high) \/ 2;\n            fnSortArray(low, mid);\n            fnSortArray(mid + 1, high);\n            fnMerge(low, mid, high);\n        }\n    }\n\n    public void fnMerge(int low, int mid, int high) {\n        List&lt;Integer&gt; b = new ArrayList&lt;&gt;();\n        int i = low;\n        int j = mid + 1;\n        int k = 0;\n        while (i &lt;= mid &amp;&amp; j &lt;= high) {\n            if (numList.get(i) &lt; numList.get(j))\n                b.add(numList.get(i++));\n            else\n                b.add(numList.get(j++));\n        }\n        while (i &lt;= mid)\n            b.add(numList.get(i++));\n        while (j &lt;= high)\n            b.add(numList.get(j++));\n        for (i = low; i &lt;= high; i++) {\n            numList.set(i, b.get(k));\n            k++;\n        }\n    }\n\n    public static void main(String[] args) {\n        long startTime, endTime;\n        int iChoice, iNum;\n        MergeSort myListObj = new MergeSort();\n\n        try (PrintWriter fout = new PrintWriter(new FileWriter(&quot;MergePlot.dat&quot;))) {\n            for (;;) {\n                System.out.println(&quot;\\n1.MergeSort\\n2.Plot the Graph\\n3.Exit&quot;);\n                System.out.println(&quot;Enter your choice&quot;);\n                iChoice = Integer.parseInt(System.console().readLine());\n\n                switch (iChoice) {\n                    case 1:\n                        System.out.print(&quot;Enter number of elements to sort : &quot;);\n                        iNum = Integer.parseInt(System.console().readLine());\n                        myListObj.fnGenRandArray(iNum);\n\n                        System.out.println(&quot;\\nUnsorted Array&quot;);\n                        myListObj.fnDispArray(iNum);\n\n                        myListObj.fnSortArray(0, iNum - 1);\n\n                        System.out.println(&quot;\\nSorted Array&quot;);\n                        myListObj.fnDispArray(iNum);\n                        break;\n                    case 2:\n                        for (int i = 100; i &lt; 100000; i += 100) {\n                            myListObj.fnGenRandArray(i);\n\n                            startTime = System.nanoTime();\n                            myListObj.fnSortArray(0, i - 1);\n                            endTime = System.nanoTime();\n\n                            fout.println(i + &quot;\\t&quot; + ((endTime - startTime) \/ 1e9));\n                        }\n\n                        System.out.println(&quot;\\nData File generated and stored in file &lt; MergePlot.dat &gt;. Use a plotting utility&quot;);\n                        break;\n                    case 3:\n                        System.exit(0);\n                }\n            }\n        } catch (IOException e) {\n            System.out.println(&quot;Error: &quot; + e.getMessage());\n        }\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: #6A737D\">\/\/MergeSort.java<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.ArrayList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.List;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.FileWriter;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.IOException;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.io.PrintWriter;<\/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\">MergeSort<\/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\"> List&lt;<\/span><span style=\"color: #F97583\">Integer<\/span><span style=\"color: #E1E4E8\">&gt; numList;<\/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: #B392F0\">MergeSort<\/span><span style=\"color: #E1E4E8\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numList <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> ArrayList&lt;&gt;();<\/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\">public<\/span><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 style=\"color: #FFAB70\">n<\/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\"> i, iVal;<\/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\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/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: #F97583\">int<\/span><span style=\"color: #E1E4E8\">) (Math.<\/span><span style=\"color: #B392F0\">random<\/span><span style=\"color: #E1E4E8\">() <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> <\/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\">add<\/span><span style=\"color: #E1E4E8\">(iVal);<\/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\">public<\/span><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 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 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\">(String.<\/span><span style=\"color: #B392F0\">format<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;%8d&quot;<\/span><span style=\"color: #E1E4E8\">, numList.<\/span><span style=\"color: #B392F0\">get<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">low<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">high<\/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\"> (low <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> high) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> mid <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> (low <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> high) <\/span><span style=\"color: #F97583\">\/<\/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\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(low, mid);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #B392F0\">fnSortArray<\/span><span style=\"color: #E1E4E8\">(mid <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, high);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #B392F0\">fnMerge<\/span><span style=\"color: #E1E4E8\">(low, mid, high);<\/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\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">fnMerge<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">low<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">mid<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">high<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        List&lt;<\/span><span style=\"color: #F97583\">Integer<\/span><span style=\"color: #E1E4E8\">&gt; b <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> ArrayList&lt;&gt;();<\/span><\/span>\n<span class=\"line\"><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\"> low;<\/span><\/span>\n<span class=\"line\"><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\"> mid <\/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\">int<\/span><span style=\"color: #E1E4E8\"> k <\/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\">while<\/span><span style=\"color: #E1E4E8\"> (i <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> mid <\/span><span style=\"color: #F97583\">&amp;&amp;<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> high) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(i) <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(j))<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                b.<\/span><span style=\"color: #B392F0\">add<\/span><span style=\"color: #E1E4E8\">(numList.<\/span><span style=\"color: #B392F0\">get<\/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\">            <\/span><span style=\"color: #F97583\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                b.<\/span><span style=\"color: #B392F0\">add<\/span><span style=\"color: #E1E4E8\">(numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(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\">while<\/span><span style=\"color: #E1E4E8\"> (i <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> mid)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            b.<\/span><span style=\"color: #B392F0\">add<\/span><span style=\"color: #E1E4E8\">(numList.<\/span><span style=\"color: #B392F0\">get<\/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\">        <\/span><span style=\"color: #F97583\">while<\/span><span style=\"color: #E1E4E8\"> (j <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> high)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            b.<\/span><span style=\"color: #B392F0\">add<\/span><span style=\"color: #E1E4E8\">(numList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(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\">for<\/span><span style=\"color: #E1E4E8\"> (i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> low; i <\/span><span style=\"color: #F97583\">&lt;=<\/span><span style=\"color: #E1E4E8\"> high; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            numList.<\/span><span style=\"color: #B392F0\">set<\/span><span style=\"color: #E1E4E8\">(i, b.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(k));<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            k<\/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>\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: #F97583\">long<\/span><span style=\"color: #E1E4E8\"> startTime, endTime;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iChoice, iNum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        MergeSort myListObj <\/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\">MergeSort<\/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\">try<\/span><span style=\"color: #E1E4E8\"> (PrintWriter fout <\/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\">PrintWriter<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">FileWriter<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;MergePlot.dat&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>\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\">1.MergeSort<\/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\">                System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter your choice&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                iChoice <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> Integer.<\/span><span style=\"color: #B392F0\">parseInt<\/span><span style=\"color: #E1E4E8\">(System.<\/span><span style=\"color: #B392F0\">console<\/span><span style=\"color: #E1E4E8\">().<\/span><span style=\"color: #B392F0\">readLine<\/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\">switch<\/span><span style=\"color: #E1E4E8\"> (iChoice) {<\/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: #F97583\">:<\/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 number of elements to sort : &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\"> Integer.<\/span><span style=\"color: #B392F0\">parseInt<\/span><span style=\"color: #E1E4E8\">(System.<\/span><span style=\"color: #B392F0\">console<\/span><span style=\"color: #E1E4E8\">().<\/span><span style=\"color: #B392F0\">readLine<\/span><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\">(iNum);<\/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\">Unsorted Array&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(iNum);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/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: #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\">println<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        myListObj.<\/span><span style=\"color: #B392F0\">fnDispArray<\/span><span style=\"color: #E1E4E8\">(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 style=\"color: #E1E4E8\">                    <\/span><span style=\"color: #F97583\">case<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #F97583\">:<\/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\">100<\/span><span style=\"color: #E1E4E8\">; i <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">100000<\/span><span style=\"color: #E1E4E8\">; i <\/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: #E1E4E8\">                            myListObj.<\/span><span style=\"color: #B392F0\">fnGenRandArray<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            startTime <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> System.<\/span><span style=\"color: #B392F0\">nanoTime<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            myListObj.<\/span><span style=\"color: #B392F0\">fnSortArray<\/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: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                            endTime <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> System.<\/span><span style=\"color: #B392F0\">nanoTime<\/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: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">+<\/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\"> ((endTime <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> startTime) <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1e9<\/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\">\\n<\/span><span style=\"color: #9ECBFF\">Data File generated and stored in file &lt; MergePlot.dat &gt;. Use a plotting utility&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: #F97583\">:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        System.<\/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\">        } <\/span><span style=\"color: #F97583\">catch<\/span><span style=\"color: #E1E4E8\"> (IOException <\/span><span style=\"color: #FFAB70\">e<\/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;Error: &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> e.<\/span><span style=\"color: #B392F0\">getMessage<\/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>\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 a number : 5nfn(5) = 31.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n1\n\nEnter number of elements to sort : 4\n\nUnsorted Array\n    6356\n     627\n    4088\n    4843\n\nSorted Array\n     627\n    4088\n    4843\n    6356\n\n1.MergeSort\n2.Plot the Graph\n3.Exit\nEnter your choice\n2\n\nData File generated and stored in file &lt; MergePlot.dat &gt;.\n Use a plotting utility\n\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\">Enter a <\/span><span style=\"color: #B392F0\">number<\/span><span style=\"color: #E1E4E8\"> : 5<\/span><span style=\"color: #B392F0\">nfn<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">) <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> 31.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\">4<\/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\">6356<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">     <\/span><span style=\"color: #79B8FF\">627<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4088<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4843<\/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\">627<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4088<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">4843<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #79B8FF\">6356<\/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>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:#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 script file for plotting data in file &quot;MergePlot.dat&quot;\n# This file is called       03MergePlot.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:#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 script file for plotting data <\/span><span style=\"color: #F97583\">in<\/span><span style=\"color: #E1E4E8\"> file <\/span><span style=\"color: #9ECBFF\">&quot;MergePlot.dat&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\"># This file is called       03MergePlot.gpl<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set terminal png font arial<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set title <\/span><span style=\"color: #9ECBFF\">&quot;Time Complexity for Merge Sort&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set autoscale<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set xlabel <\/span><span style=\"color: #9ECBFF\">&quot;Size of Input&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set ylabel <\/span><span style=\"color: #9ECBFF\">&quot;Sorting Time (microseconds)&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set grid<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">set output <\/span><span style=\"color: #9ECBFF\">&quot;MergePlot.png&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">plot <\/span><span style=\"color: #9ECBFF\">&quot;MergePlot.dat&quot;<\/span><span style=\"color: #E1E4E8\"> t <\/span><span style=\"color: #9ECBFF\">&#39;Merge Sort&#39;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">with<\/span><span style=\"color: #E1E4E8\"> 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\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"M3\">Module 3<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P04\">Knapsack problem using Greedy method.<\/h3>\n\n\n\n<p>Write &amp; Execute C++\/Java Program to solve Knapsack problem using Greedy 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=\"#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;\n\n\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, pos;\n    float knCap, remCap, totProfit;\n    Item a;\n\n    cout &lt;&lt; &quot;Enter the number of items : &quot; ;\n    cin &gt;&gt; iNum;\n\n    cout &lt;&lt; &quot;Enter Knapsack capacity : &quot;;\n    cin &gt;&gt; knCap;\n\n    for(i=0;i&lt;iNum;i++)\n    {\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            pos=0;\n            while(a.profitRatio &lt; itemList[pos].profitRatio) pos++;\n            itemList.insert(itemList.begin() + pos,a);\n        }\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        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;\\nKNAPSACK SOLUTION\\n&quot;;\n    cout &lt;&lt; &quot;Item\\tWeight\\tProfit\\tFraction Chosen\\n&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; itemList[i].fraction &lt;&lt; endl;\n    }\n    cout  &lt;&lt; &quot;\\nTotal Profit Earned : &quot; &lt;&lt; totProfit &lt;&lt; endl;\n\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: #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>\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, pos;<\/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: #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>\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\">            pos<\/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[pos].profitRatio) pos<\/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\"> pos,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 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\">KNAPSACK 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\"> 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\"> 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\">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.ArrayList;\nimport java.util.Comparator;\nimport java.util.List;\nimport java.util.Scanner;\n\nclass Item {\n    int profit;\n    int weight;\n    float profitRatio;\n    float fraction;\n}\n\npublic class KnapsackProblem {\n    public static void main(String[] args) {\n        List&lt;Item&gt; itemList = new ArrayList&lt;&gt;();\n        int iNum, i;\n        float knCap, remCap, totProfit;\n        Item a;\n\n        Scanner scanner = new Scanner(System.in);\n\n        System.out.print(&quot;Enter the number of items: &quot;);\n        iNum = scanner.nextInt();\n\n        System.out.print(&quot;Enter Knapsack capacity: &quot;);\n        knCap = scanner.nextFloat();\n\n        for (i = 0; i &lt; iNum; i++) {\n            a = new Item();\n\n            System.out.print(&quot;Enter profit: &quot;);\n            a.profit = scanner.nextInt();\n\n            System.out.print(&quot;Enter weight: &quot;);\n            a.weight = scanner.nextInt();\n\n            a.profitRatio = (float) a.profit \/ a.weight;\n            a.fraction = 0.0f;\n\n            itemList.add(a);\n        }\n\n        itemList.sort(Comparator.comparing((Item item) -&gt; item.profitRatio).reversed());\n\n        remCap = knCap;\n        totProfit = 0.0f;\n\n        for (i = 0; i &lt; iNum; i++) {\n            a = itemList.get(i);\n\n            if (a.weight &lt; remCap) {\n                a.fraction = 1.0f;\n                remCap -= a.weight;\n                totProfit += a.profit;\n            } else {\n                a.fraction = remCap \/ a.weight;\n                remCap = 0;\n                totProfit += a.profit * a.fraction;\n                break;\n            }\n        }\n\n        System.out.println(&quot;\\nKNAPSACK SOLUTION&quot;);\n        System.out.println(&quot;Item\\tWeight\\tProfit\\tFraction Chosen&quot;);\n\n        for (i = 0; i &lt; iNum; i++) {\n            a = itemList.get(i);\n            System.out.printf(&quot;%d\\t%d\\t%d\\t%.2f\\n&quot;, i + 1, a.weight, a.profit, a.fraction);\n        }\n\n        System.out.println(&quot;\\nTotal Profit Earned: &quot; + totProfit);\n\n        scanner.close();\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.ArrayList;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.Comparator;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F97583\">import<\/span><span style=\"color: #E1E4E8\"> java.util.List;<\/span><\/span>\n<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\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Item<\/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>\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\">KnapsackProblem<\/span><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\">        List&lt;<\/span><span style=\"color: #F97583\">Item<\/span><span style=\"color: #E1E4E8\">&gt; itemList <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">new<\/span><span style=\"color: #E1E4E8\"> ArrayList&lt;&gt;();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> iNum, i;<\/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\">        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 items: &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>\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 Knapsack capacity: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        knCap <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> scanner.<\/span><span style=\"color: #B392F0\">nextFloat<\/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: #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\">            a <\/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\">Item<\/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\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter profit: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            a.profit <\/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\">            System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter weight: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            a.weight <\/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\">            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.0f<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            itemList.<\/span><span style=\"color: #B392F0\">add<\/span><span style=\"color: #E1E4E8\">(a);<\/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\">        itemList.<\/span><span style=\"color: #B392F0\">sort<\/span><span style=\"color: #E1E4E8\">(Comparator.<\/span><span style=\"color: #B392F0\">comparing<\/span><span style=\"color: #E1E4E8\">((Item item) <\/span><span style=\"color: #F97583\">-&gt;<\/span><span style=\"color: #E1E4E8\"> item.profitRatio).<\/span><span style=\"color: #B392F0\">reversed<\/span><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.0f<\/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: #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\">            a <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> itemList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(i);<\/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\"> (a.weight <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> remCap) {<\/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\">1.0f<\/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\"> a.weight;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                totProfit <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> a.profit;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            } <\/span><span style=\"color: #F97583\">else<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                a.fraction <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> remCap <\/span><span style=\"color: #F97583\">\/<\/span><span style=\"color: #E1E4E8\"> a.weight;<\/span><\/span>\n<span class=\"line\"><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\">                totProfit <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> a.profit <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> a.fraction;<\/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\">        }<\/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\">KNAPSACK SOLUTION&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 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&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: #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\">            a <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> itemList.<\/span><span style=\"color: #B392F0\">get<\/span><span style=\"color: #E1E4E8\">(i);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            System.out.<\/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\">%d<\/span><span style=\"color: #79B8FF\">\\t<\/span><span style=\"color: #9ECBFF\">%d<\/span><span style=\"color: #79B8FF\">\\t<\/span><span style=\"color: #9ECBFF\">%.2f<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #E1E4E8\">, i <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">, a.weight, a.profit, a.fraction);<\/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\">\\n<\/span><span style=\"color: #9ECBFF\">Total Profit Earned: &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> totProfit);<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        scanner.<\/span><span style=\"color: #B392F0\">close<\/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><\/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 : 5\nEnter Knapsack capacity : 60\nEnter profit : 30\nEnter weight : 5\nEnter profit : 40\nEnter weight : 10\nEnter profit : 45\nEnter weight : 15\nEnter profit : 77\nEnter weight : 22\nEnter profit : 90\nEnter weight : 25\n\nKNAPSACK SOLUTION\nItem\tWeight\tProfit\tFraction Chosen\n  1\t      5\t      30\t    1.00\n  2\t      10\t  40\t    1.00\n  3\t      25\t  90\t    1.00\n  4\t      22\t  77\t    0.91\n  5\t      15\t  45\t    0.00\n\nTotal Profit Earned: 230.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: #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\">5<\/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\">60<\/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\">30<\/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\">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\">40<\/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\">10<\/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\">45<\/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\">15<\/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\">77<\/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\">22<\/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\">90<\/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\">25<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #79B8FF\">KNAPSACK<\/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\">5<\/span><span style=\"color: #E1E4E8\">\t      <\/span><span style=\"color: #79B8FF\">30<\/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\">10<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">40<\/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\">25<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">90<\/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\">4<\/span><span style=\"color: #E1E4E8\">\t      <\/span><span style=\"color: #79B8FF\">22<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">77<\/span><span style=\"color: #E1E4E8\">\t    <\/span><span style=\"color: #79B8FF\">0.91<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">  <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\">\t      <\/span><span style=\"color: #79B8FF\">15<\/span><span style=\"color: #E1E4E8\">\t  <\/span><span style=\"color: #79B8FF\">45<\/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\">230.0<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P05\">Dijkstra&#8217;s Algorithm<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Write &amp; Execute C++\/Java Program to find shortest paths to other vertices from a given vertex in a weighted connected graph, 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: 05Dijkstra.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 7.5.0, Ubuntu 18.04\n*Date\t\t: 31 Mar 2020\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 nodes\\n&quot;;\n\tcin &gt;&gt; n;\n\tcout &lt;&lt; &quot;Enter the Cost Matrix\\n&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\/******************************************************************************\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\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: 05Dijkstra.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 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2020<\/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\">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;\n\npublic class DijkstraAlgorithm {\n    private static final int MAXNODES = 10;\n    private static final int INF = 9999;\n\n    public static void main(String[] args) {\n        int n, cost[][] = new int[MAXNODES][MAXNODES], dist[] = new int[MAXNODES], visited[] = new int[MAXNODES], path[] = new int[MAXNODES], i, j, source, dest;\n        Scanner scanner = new Scanner(System.in);\n\n        System.out.print(&quot;Enter the number of nodes: &quot;);\n        n = scanner.nextInt();\n\n        System.out.println(&quot;Enter the Cost Matrix:&quot;);\n        for (i = 0; i &lt; n; i++) {\n            for (j = 0; j &lt; n; j++) {\n                cost[i][j] = scanner.nextInt();\n            }\n        }\n\n        System.out.print(&quot;Enter the Source vertex: &quot;);\n        source = scanner.nextInt();\n\n        System.out.println(&quot;\\nShortest paths from Source Vertex &quot; + source + &quot; to other vertices:&quot;);\n\n        for (dest = 0; dest &lt; n; dest++) {\n            fnDijkstra(cost, dist, path, visited, source, dest, n);\n\n            if (dist[dest] == INF) {\n                System.out.println(dest + &quot; is not reachable&quot;);\n            } else {\n                System.out.println();\n                i = dest;\n\n                do {\n                    System.out.print(i + &quot; &lt;-- &quot;);\n                    i = path[i];\n                } while (i != source);\n\n                System.out.println(i + &quot; = &quot; + dist[dest]);\n            }\n        }\n    }\n\n    private static void fnDijkstra(int[][] cost, int[] dist, int[] path, int[] visited, int source, int dest, int n) {\n        int i, j, a, b, min;\n\n        for (i = 0; i &lt; n; i++) {\n            visited[i] = 0;\n            dist[i] = cost[source][i];\n            path[i] = source;\n        }\n\n        visited[source] = 1;\n\n        for (i = 1; i &lt; n; i++) {\n            min = INF;\n            a = -1;\n\n            for (j = 0; j &lt; n; j++) {\n                if (visited[j] == 0 &amp;&amp; dist[j] &lt; min) {\n                    min = dist[j];\n                    a = j;\n                }\n            }\n\n            if (a == -1) {\n                return;\n            }\n\n            visited[a] = 1;\n\n            if (a == dest) {\n                return;\n            }\n\n            for (b = 0; b &lt; n; b++) {\n                if (visited[b] == 0 &amp;&amp; dist[a] + cost[a][b] &lt; dist[b]) {\n                    dist[b] = dist[a] + cost[a][b];\n                    path[b] = a;\n                }\n            }\n        }\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\">DijkstraAlgorithm<\/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\"> 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: #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\"> 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>\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\"> n, cost[][] <\/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\">[MAXNODES][MAXNODES], dist[] <\/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\">[MAXNODES], visited[] <\/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\">[MAXNODES], 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\">[MAXNODES], i, j, source, dest;<\/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 nodes: &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\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the Cost Matrix:&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: #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\"> (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\">                cost[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>\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 Source vertex: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        source <\/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\">        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\">Shortest paths from Source Vertex &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> source <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; to other vertices:&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\"> (dest <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/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\">            <\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/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\">                System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(dest <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #9ECBFF\">&quot; is not reachable&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            } <\/span><span style=\"color: #F97583\">else<\/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\">                i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> dest;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #F97583\">do<\/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\">(i <\/span><span style=\"color: #F97583\">+<\/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\">                    i <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> path[i];<\/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\">!=<\/span><span style=\"color: #E1E4E8\"> source);<\/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\">(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 style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> dist[dest]);<\/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\">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\">fnDijkstra<\/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\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] <\/span><span style=\"color: #FFAB70\">dist<\/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\">visited<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">source<\/span><span style=\"color: #E1E4E8\">, <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #FFAB70\">dest<\/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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> i, j, a, b, min;<\/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: #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\">            visited[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\">            dist[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[source][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            path[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> source;<\/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\">        visited[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>\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\">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\">            min <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><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>\n<span class=\"line\"><\/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\"> <\/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\">                <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (visited[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\"> dist[j] <\/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\"> dist[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    a <\/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 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\"> (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>\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\">            visited[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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (a <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> dest) {<\/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: #F97583\">for<\/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\">; 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\">                <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (visited[b] <\/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\"> dist[a] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> cost[a][b] <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\"> dist[b]) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    dist[b] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> dist[a] <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> cost[a][b];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    path[b] <\/span><span style=\"color: #F97583\">=<\/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>\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><\/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\n\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\n\/\/For Source Vertex : 0 shortest path to other vertices\/\/\n\n0&lt;--0 = 0\n\n1&lt;--0 = 4\n\n2&lt;--0 = 4\n\n3&lt;--2&lt;--0 = 7\n\n4&lt;--2&lt;--0 = 5\n\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\n\n\n<h3 class=\"wp-block-heading\" id=\"P06\">Kruskal&#8217;s Algorithm<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Write &amp; Execute C++\/Java Program to find Minimum Cost Spanning Tree of a given connected undirected graph using Kruskal&#8217;s algorithm. Use Union-Find algorithms in your program.<\/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: 06Kruskal.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 7.5.0, Ubuntu 18.04\n*Date\t\t: 31 Mar 2020\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\t}\n\te[k].u = i;\n\te[k].v = j;\n\te[k].cost = cost;\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: 06Kruskal.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 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2020<\/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: #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: #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 style=\"color: #E1E4E8\">\t}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\te[k].u <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\te[k].v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">\te[k].cost <\/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: #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\">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;\n\nclass Kruskal {\n    static class Edge {\n        int u, v, cost;\n    }\n\n    private static final int MAXNODES = 10;\n    private static final int INF = 9999;\n\n    private static int findParent(int v, int[] parent) {\n        while (parent[v] != v)\n            v = parent[v];\n        return v;\n    }\n\n    private static void union(int i, int j, int[] parent) {\n        if (i &lt; j)\n            parent[j] = i;\n        else\n            parent[i] = j;\n    }\n\n    private static void inputGraph(int m, Edge[] e) {\n        Scanner scanner = new Scanner(System.in);\n        for (int k = 0; k &lt; m; k++) {\n            System.out.println(&quot;Enter edge and cost in the form u, v, w :&quot;);\n            int i = scanner.nextInt();\n            int j = scanner.nextInt();\n            int cost = scanner.nextInt();\n            e[k] = new Edge();\n            e[k].u = i;\n            e[k].v = j;\n            e[k].cost = cost;\n        }\n        scanner.close();\n    }\n\n    private static int getMinEdge(Edge[] e, int n) {\n        int small = INF;\n        int pos = -1;\n        for (int i = 0; i &lt; n; i++) {\n            if (e[i].cost &lt; small) {\n                small = e[i].cost;\n                pos = i;\n            }\n        }\n        return pos;\n    }\n\n    private static void kruskal(int n, Edge[] e, int m) {\n        int count = 0;\n        int k = 0;\n        int sum = 0;\n        int[][] t = new int[MAXNODES][2];\n        int[] parent = new int[MAXNODES];\n\n        for (int i = 0; i &lt; n; i++) {\n            parent[i] = i;\n        }\n\n        while (count != n - 1) {\n            int pos = getMinEdge(e, m);\n            if (pos == -1) {\n                break;\n            }\n            int u = e[pos].u;\n            int v = e[pos].v;\n            int i = findParent(u, parent);\n            int j = findParent(v, parent);\n            if (i != j) {\n                t[k][0] = u;\n                t[k][1] = v;\n                k++;\n                count++;\n                sum += e[pos].cost;\n                union(i, j, parent);\n            }\n            e[pos].cost = INF;\n        }\n\n        if (count == n - 1) {\n            System.out.println(&quot;\\nSpanning tree exists&quot;);\n            System.out.println(&quot;The Spanning tree is shown below&quot;);\n            for (int i = 0; i &lt; n - 1; i++)\n                System.out.println(t[i][0] + &quot; &quot; + t[i][1]);\n            System.out.println(&quot;Cost of the spanning tree: &quot; + sum);\n        } else {\n            System.out.println(&quot;\\nThe spanning tree does not exist&quot;);\n        }\n    }\n\n    public static void main(String[] args) {\n        int n = 6, m = 20;\n        Edge[] e = new Edge[2 * MAXNODES];\n        Scanner scanner = new Scanner(System.in);\n        System.out.print(&quot;Enter the number of nodes : &quot;);\n        n = scanner.nextInt();\n        System.out.print(&quot;Enter the number of edges : &quot;);\n        m = scanner.nextInt();\n        inputGraph(m, e);\n        kruskal(n, e, m);\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\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Kruskal<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Edge<\/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\"> u, v, 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\">final<\/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: #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\"> 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>\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\">findParent<\/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 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\">            v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> parent[v];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/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: #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\">union<\/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 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\">            parent[j] <\/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\">else<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            parent[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: #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\">inputGraph<\/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: #F97583\">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\">        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\">        <\/span><span style=\"color: #F97583\">for<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> k <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/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\">            System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter edge and cost in the form u, v, w :&quot;<\/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\"> i <\/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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> 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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> cost <\/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\">            e[k] <\/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\">Edge<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            e[k].u <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> i;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            e[k].v <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> j;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            e[k].cost <\/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 style=\"color: #E1E4E8\">        scanner.<\/span><span style=\"color: #B392F0\">close<\/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\">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\">getMinEdge<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #F97583\">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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> small <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/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\">        <\/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\"> (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\">                small <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> e[i].cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                pos <\/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 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: #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\">kruskal<\/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\">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 style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> count <\/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\">int<\/span><span style=\"color: #E1E4E8\"> k <\/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\">int<\/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\">        <\/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\">new<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[MAXNODES][<\/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: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] parent <\/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\">[MAXNODES];<\/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\">            parent[i] <\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/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: #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\">int<\/span><span style=\"color: #E1E4E8\"> pos <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">getMinEdge<\/span><span style=\"color: #E1E4E8\">(e, m);<\/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\"> <\/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: #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\">            <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> u <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> e[pos].u;<\/span><\/span>\n<span class=\"line\"><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\"> e[pos].v;<\/span><\/span>\n<span class=\"line\"><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: #B392F0\">findParent<\/span><span style=\"color: #E1E4E8\">(u, parent);<\/span><\/span>\n<span class=\"line\"><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: #B392F0\">findParent<\/span><span style=\"color: #E1E4E8\">(v, parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            <\/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[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[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\">                k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                count<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                sum <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> e[pos].cost;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                <\/span><span style=\"color: #B392F0\">union<\/span><span style=\"color: #E1E4E8\">(i, j, parent);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            e[pos].cost <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> INF;<\/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\"> (count <\/span><span style=\"color: #F97583\">==<\/span><span style=\"color: #E1E4E8\"> n <\/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\">            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\">Spanning tree exists&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 style=\"color: #9ECBFF\">&quot;The Spanning tree is shown below&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\"> n <\/span><span style=\"color: #F97583\">-<\/span><span style=\"color: #E1E4E8\"> <\/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\">                System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(t[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: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> t[i][<\/span><span style=\"color: #79B8FF\">1<\/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;Cost of the spanning tree: &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> sum);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        } <\/span><span style=\"color: #F97583\">else<\/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;<\/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>\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\">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\"> 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\">        <\/span><span style=\"color: #F97583\">Edge<\/span><span style=\"color: #E1E4E8\">[] e <\/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\">Edge<\/span><span style=\"color: #E1E4E8\">[<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">*<\/span><span style=\"color: #E1E4E8\"> MAXNODES];<\/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 : &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 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 edges : &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        m <\/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 style=\"color: #B392F0\">inputGraph<\/span><span style=\"color: #E1E4E8\">(m, e);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">kruskal<\/span><span style=\"color: #E1E4E8\">(n, e, m);<\/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 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\n\nSpanning tree exists\nThe Spanning tree is shown below\n0 2\n5 3\n3 2\n1 4\n1 2\n\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\n\n\n<h3 class=\"wp-block-heading\" id=\"P07\">Prim&#8217;s Algorithm<\/h3>\n\n\n\n<p class=\"has-text-align-justify\">Write &amp; Execute C++\/Java 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: 07PrimMST.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 7.5.0, Ubuntu 18.04\n*Date\t\t: 31 Mar 2020\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\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 exist\\n&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\/******************************************************************************\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: 07PrimMST.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 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2020<\/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\">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;\n\nclass Prims {\n    static final int MAXNODES = 10;\n\n    static void fnPrims(int n, int[][] cost) {\n        int i, j, u, v, min;\n        int sum, k, t[][] = new int[MAXNODES][2], p[] = new int[MAXNODES], d[] = new int[MAXNODES], s[] = new int[MAXNODES];\n        int source, count;\n\n        min = 9999;\n        source = 0;\n        for (i = 0; i &lt; n; i++) {\n            for (j = 0; j &lt; n; j++) {\n                if (cost[i][j] != 0 &amp;&amp; cost[i][j] &lt;= min) {\n                    min = cost[i][j];\n                    source = i;\n                }\n            }\n        }\n        for (i = 0; i &lt; n; i++) {\n            d[i] = cost[source][i];\n            s[i] = 0;\n            p[i] = source;\n        }\n        s[source] = 1;\n        sum = 0;\n        k = 0;\n        count = 0;\n        while (count != n - 1) {\n            min = 9999;\n            u = -1;\n            for (j = 0; j &lt; n; j++) {\n                if (s[j] == 0) {\n                    if (d[j] &lt;= min) {\n                        min = d[j];\n                        u = j;\n                    }\n                }\n            }\n            t[k][0] = u;\n            t[k][1] = p[u];\n            k++;\n            count++;\n            sum += cost[u][p[u]];\n            s[u] = 1;\n            for (v = 0; v &lt; n; v++) {\n                if (s[v] == 0 &amp;&amp; cost[u][v] &lt; d[v]) {\n                    d[v] = cost[u][v];\n                    p[v] = u;\n                }\n            }\n        }\n        if (sum &gt;= 9999)\n            System.out.println(&quot;\\nSpanning tree does not exist&quot;);\n        else {\n            System.out.println(&quot;\\nThe spanning tree exists and the minimum cost spanning tree is:&quot;);\n            for (i = 0; i &lt; k; i++)\n                System.out.println(t[i][1] + &quot; &quot; + t[i][0]);\n            System.out.println(&quot;\\nThe cost of the minimum cost spanning tree is &quot; + sum);\n        }\n    }\n\n    public static void main(String[] args) {\n        Scanner scanner = new Scanner(System.in);\n        int a[][] = { { 0, 3, 9999, 7, 9 }, { 3, 0, 4, 2, 9999 }, { 9999, 4, 0, 5, 6 }, { 7, 2, 5, 0, 4 },\n                { 9, 9999, 6, 4, 0 } };\n        int n = 5;\n        System.out.print(&quot;Enter the number of vertices: &quot;);\n        n = scanner.nextInt();\n        fnGetMatrix(n, a);\n        fnPrims(n, a);\n    }\n\n    static void fnGetMatrix(int n, int a[][]) {\n        Scanner scanner = new Scanner(System.in);\n        System.out.println(&quot;Enter the Cost Adjacency Matrix:&quot;);\n        for (int i = 0; i &lt; n; i++)\n            for (int j = 0; j &lt; n; j++)\n                a[i][j] = scanner.nextInt();\n        scanner.close();\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\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">Prims<\/span><span style=\"color: #E1E4E8\"> {<\/span><\/span>\n<span class=\"line\"><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\"> 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>\n<span class=\"line\"><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\">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\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/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\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> sum, k, t[][] <\/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\">[MAXNODES][<\/span><span style=\"color: #79B8FF\">2<\/span><span style=\"color: #E1E4E8\">], p[] <\/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\">[MAXNODES], d[] <\/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\">[MAXNODES], s[] <\/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\">[MAXNODES];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/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\">        min <\/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\">        source <\/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: #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\"> (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\">                <\/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\">                    min <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[i][j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    source <\/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 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\"> n; i<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            d[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[source][i];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            s[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\">            p[i] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> source;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        s[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\">        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\">        k <\/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\">        count <\/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\">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: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            min <\/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\">            u <\/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 style=\"color: #F97583\">for<\/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\">                <\/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\">                    <\/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\">                        min <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> d[j];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                        u <\/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 style=\"color: #E1E4E8\">                }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            }<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            t[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[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\">            k<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            count<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            sum <\/span><span style=\"color: #F97583\">+=<\/span><span style=\"color: #E1E4E8\"> cost[u][p[u]];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            s[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\">            <\/span><span style=\"color: #F97583\">for<\/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\">; 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\">                <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (s[v] <\/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[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\">                    d[v] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> cost[u][v];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                    p[v] <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> u;<\/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 style=\"color: #E1E4E8\">        <\/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\">            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\">Spanning tree does not exist&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">else<\/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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">The spanning tree exists and the minimum cost spanning tree is:&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: #E1E4E8\"> <\/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\">                System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(t[i][<\/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: #9ECBFF\">&quot; &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> t[i][<\/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\">println<\/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\">+<\/span><span style=\"color: #E1E4E8\"> sum);<\/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\">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\">        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\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> a[][] <\/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\">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\"> }, { <\/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\"> }, { <\/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 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\"> },<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                { <\/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\">        <\/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\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/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\">        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 style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">fnGetMatrix<\/span><span style=\"color: #E1E4E8\">(n, a);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #B392F0\">fnPrims<\/span><span style=\"color: #E1E4E8\">(n, a);<\/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\">static<\/span><span style=\"color: #E1E4E8\"> <\/span><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\">[][]) {<\/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\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Enter the Cost Adjacency Matrix:&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\"> 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\">                a[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\">        scanner.<\/span><span style=\"color: #B392F0\">close<\/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><\/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\n\nThe spanning tree exists and minimum cost spanning tree is \n3 1\n1 0\n3 4\n1 2\n\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\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"M4\">Module 4<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P08\">Floyd&#8217;s Algorithm<\/h3>\n\n\n\n<p>Write C++\/ Java programs 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: Floyd.c\n*Description: Program to implement Floyd's Algorithm\n*Author\t\t: Prabodh C P\n*Compiler\t: gcc compiler 7.5.0, Ubuntu 18.04\n*Date\t\t: 31 Mar 2020\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 ALGORITHM\\t*\\n&quot;;\n\tcout &lt;&lt; &quot;*********************************************************&quot;;\n\tcout &lt;&lt; &quot;\\nEnter the number of vertices\\n&quot;;\n\tcin &gt;&gt; iN;\n\tcout &lt;&lt; &quot;\\nEnter the Cost adjacency Matrix\\n&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 Graph\\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\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\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\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 Matrix\\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\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: Floyd.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 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2020<\/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\">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;\n\npublic class FloydAlgorithm {\n    public static void main(String[] args) {\n        int iN, i, j, k;\n        int[][] iaFloyd = new int[10][10];\n        int[][] iaCost = new int[10][10];\n\n        System.out.println(&quot;\\n*********************************************************&quot;);\n        System.out.println(&quot;*\\tPROGRAM TO IMPLEMENT FLOYD'S ALGORITHM\\t*&quot;);\n        System.out.println(&quot;*********************************************************&quot;);\n        System.out.println(&quot;\\nEnter the number of vertices&quot;);\n        Scanner scanner = new Scanner(System.in);\n        iN = scanner.nextInt();\n\n        System.out.println(&quot;\\nEnter the Cost adjacency Matrix&quot;);\n        for (i = 0; i &lt; iN; i++) {\n            for (j = 0; j &lt; iN; j++) {\n                iaCost[i][j] = scanner.nextInt();\n            }\n        }\n        System.out.println(&quot;\\nInput Graph&quot;);\n        for (i = 0; i &lt; iN; i++) {\n            for (j = 0; j &lt; iN; j++) {\n                System.out.print(iaCost[i][j] + &quot;\\t&quot;);\n            }\n            System.out.println();\n        }\n        System.out.println();\n\n        for (i = 0; i &lt; iN; i++) {\n            for (j = 0; j &lt; iN; j++) {\n                iaFloyd[i][j] = iaCost[i][j];\n            }\n        }\n\n        for (k = 0; k &lt; iN; k++) {\n            for (i = 0; i &lt; iN; i++) {\n                for (j = 0; j &lt; iN; j++) {\n                    if (iaFloyd[i][j] &gt; (iaFloyd[i][k] + iaFloyd[k][j]))\n                        iaFloyd[i][j] = (iaFloyd[i][k] + iaFloyd[k][j]);\n                }\n            }\n        }\n\n        System.out.println(&quot;\\nAll Pair Shortest Path Matrix&quot;);\n        for (i = 0; i &lt; iN; i++) {\n            for (j = 0; j &lt; iN; j++) {\n                System.out.print(iaFloyd[i][j] + &quot;\\t&quot;);\n            }\n            System.out.println();\n        }\n        System.out.println();\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\">FloydAlgorithm<\/span><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\"> iN, i, j, k;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] iaFloyd <\/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\">[<\/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\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[][] iaCost <\/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\">[<\/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>\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\">*********************************************************&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 style=\"color: #9ECBFF\">&quot;*<\/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\">*&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 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 style=\"color: #9ECBFF\">&quot;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Enter the number of vertices&quot;<\/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 style=\"color: #E1E4E8\">        iN <\/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\">        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 adjacency Matrix&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: #E1E4E8\"> <\/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\">            <\/span><span style=\"color: #F97583\">for<\/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\"> iN; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                iaCost[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\">        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\">Input 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\"> (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\"> iN; 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\"> (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\"> iN; 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\">(iaCost[i][j] <\/span><span style=\"color: #F97583\">+<\/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\">            }<\/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\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/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: #E1E4E8\"> <\/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\">            <\/span><span style=\"color: #F97583\">for<\/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\"> iN; j<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                iaFloyd[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\">            }<\/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\"> (k <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/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\">            <\/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\"> iN; 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\"> (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\"> iN; 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\"> (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\">                        iaFloyd[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\">                }<\/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\">        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\">All Pair Shortest Path Matrix&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: #E1E4E8\"> <\/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\">            <\/span><span style=\"color: #F97583\">for<\/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\"> iN; 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\">(iaFloyd[i][j] <\/span><span style=\"color: #F97583\">+<\/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\">            }<\/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\">        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>\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\/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\n\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\n\n\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\n\n\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\n\n\n<h3 class=\"wp-block-heading\" id=\"P09\">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()\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 Matrix\\n&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;\\n\\nThe 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 \nint main()\n{\n\ttakeInput();\n\t \n\tcout &lt;&lt; &quot;\\n\\nThe Path is:\\n&quot;;\n\tmincost(0); \/\/passing 0 because starting vertex\n\t \n\tcout &lt;&lt; &quot;\\n\\nMinimum cost is &quot; &lt;&lt; cost &lt;&lt; endl;\n\t \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: #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\">{<\/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\">\\n\\n<\/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 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\">\\n\\n<\/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\">\\n\\n<\/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><\/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;\n\npublic class TravelingSalesmanProblem {\n    private static int[][] cities;\n    private static int[] completed;\n    private static int n;\n    private static int cost;\n\n    public static void main(String[] args) {\n        takeInput();\n\n        System.out.println(&quot;\\n\\nThe Path is:&quot;);\n        minCost(0); \/\/ Start from vertex 0\n\n        System.out.println(&quot;\\n\\nMinimum cost is &quot; + cost);\n    }\n\n    private static void takeInput() {\n        Scanner scanner = new Scanner(System.in);\n\n        System.out.print(&quot;Enter the number of cities: &quot;);\n        n = scanner.nextInt();\n\n        cities = new int[n][n];\n        completed = new int[n];\n\n        System.out.println(&quot;\\nEnter the Cost Matrix&quot;);\n\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\n            completed[i] = 0;\n        }\n\n        System.out.println(&quot;\\n\\nThe cost list is:&quot;);\n\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\n    private static int least(int c) {\n        int nc = 999;\n        int min = 999;\n        int kmin = 0;\n\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\n        if (min != 999)\n            cost += kmin;\n\n        return nc;\n    }\n\n    private static void minCost(int city) {\n        completed[city] = 1;\n\n        System.out.print(city + &quot;---&gt;&quot;);\n\n        int ncity = least(city);\n\n        if (ncity == 999) {\n            ncity = 0;\n            System.out.print(ncity);\n            cost += cities[city][ncity];\n            return;\n        }\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\">\\n\\n<\/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\">\\n\\n<\/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\">\\n\\n<\/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\n\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\n\n\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\n\nThe Path is:\n0---&gt;2---&gt;1---&gt;3---&gt;4---&gt;0\n\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\n\n\n<h3 class=\"wp-block-heading\" id=\"P10\">0\/1 Knapsack problem<\/h3>\n\n\n\n<p>Write C++\/ Java programs 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: 10AKnapsack.cpp\n*Description: Program to find Binomial Coefficient\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 7.5.0, Ubuntu 18.04\n*Date\t\t: 31 Mar 2020\n********************************************************************************\/\n#include &lt;iostream&gt;\n#include &lt;vector&gt;\nusing namespace std;\n\nconst int MAX = 10;\n\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\n    public:\n    Knapsack();\n    void fnReadKnapDetails();\n    void fnCalcProfit();\n    void fnFindSubSet();\n};\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\n    cout &lt;&lt; &quot;Enter the weights : \\n&quot;;\n    for (i=1; i&lt;=numOfObj; i++)\n    {\n        cout &lt;&lt; &quot;\\nWeight &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;\\nProfit &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}\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}\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\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\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: 10AKnapsack.cpp<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Description: Program to find Binomial Coefficient<\/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 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2020<\/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: #E1E4E8\">#include <\/span><span style=\"color: #F97583\">&lt;<\/span><span style=\"color: #E1E4E8\">vector<\/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\">10<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">inline int <\/span><span style=\"color: #B392F0\">max<\/span><span style=\"color: #E1E4E8\">(int x, int y)<\/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\">    int <\/span><span style=\"color: #FFAB70\">totalProfit<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    int weight[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    int profit[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    int <\/span><span style=\"color: #FFAB70\">capacity<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    int <\/span><span style=\"color: #FFAB70\">numOfObj<\/span><span style=\"color: #E1E4E8\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    int subset[<\/span><span style=\"color: #79B8FF\">MAX<\/span><span style=\"color: #E1E4E8\">];<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    int table[<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #FFAB70\">public<\/span><span style=\"color: #F97583\">:<\/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\">    int 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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">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\">    int 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\">    int 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\">}<\/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\">    int 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: #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\">    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\">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;\n\nclass Knapsack {\n    private int totalProfit;\n    private int[] weight;\n    private int[] profit;\n    private int capacity;\n    private int numOfObj;\n    private int[] subset;\n    private int[][] table;\n\n    public Knapsack() {\n        totalProfit = 0;\n    }\n\n    public void fnReadKnapDetails() {\n        Scanner scanner = new Scanner(System.in);\n\n        System.out.print(&quot;Enter the maximum number of objects: &quot;);\n        numOfObj = scanner.nextInt();\n\n        weight = new int[numOfObj + 1];\n        profit = new int[numOfObj + 1];\n\n        System.out.println(&quot;\\nEnter the weights:&quot;);\n        for (int i = 1; i &lt;= numOfObj; i++) {\n            System.out.print(&quot;Weight &quot; + i + &quot;: &quot;);\n            weight[i] = scanner.nextInt();\n        }\n\n        System.out.println(&quot;\\nEnter the profits:&quot;);\n        for (int i = 1; i &lt;= numOfObj; i++) {\n            System.out.print(&quot;Profit &quot; + i + &quot;: &quot;);\n            profit[i] = scanner.nextInt();\n        }\n\n        System.out.print(&quot;\\nEnter the maximum capacity: &quot;);\n        capacity = scanner.nextInt();\n\n        subset = new int[numOfObj + 1];\n        table = new int[numOfObj + 1][capacity + 1];\n    }\n\n    private int max(int x, int y) {\n        return (x &gt; y) ? x : y;\n    }\n\n    public void fnCalcProfit() {\n        for (int j = 0; j &lt;= capacity; j++)\n            table[0][j] = 0;\n\n        for (int i = 0; i &lt;= numOfObj; i++)\n            table[i][0] = 0;\n\n        for (int i = 1; i &lt;= numOfObj; i++) {\n            for (int j = 1; j &lt;= capacity; j++) {\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\n        totalProfit = table[numOfObj][capacity];\n    }\n\n    public void fnFindSubSet() {\n        int i = numOfObj;\n        int j = capacity;\n\n        while (i &gt;= 1 &amp;&amp; j &gt;= 1) {\n            if (table[i][j] != table[i - 1][j]) {\n                subset[i] = 1;\n                j = j - weight[i];\n            }\n            i--;\n        }\n\n        System.out.print(&quot;Items selected for the Knapsack are: &quot;);\n        for (i = 1; i &lt;= numOfObj; i++) {\n            if (subset[i] == 1)\n                System.out.print(i + &quot; &quot;);\n        }\n        System.out.println();\n        System.out.println(&quot;Total Profit earned is &quot; + totalProfit);\n    }\n\n    public static void main(String[] args) {\n        Knapsack knapsackObj = new Knapsack();\n\n        knapsackObj.fnReadKnapDetails();\n        knapsackObj.fnCalcProfit();\n        knapsackObj.fnFindSubSet();\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\">class<\/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 style=\"color: #F97583\">private<\/span><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\">private<\/span><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\">private<\/span><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\">private<\/span><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\">private<\/span><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\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] subset;<\/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\">int<\/span><span style=\"color: #E1E4E8\">[][] table;<\/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: #B392F0\">Knapsack<\/span><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\"> <\/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\">    <\/span><span style=\"color: #F97583\">public<\/span><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\">        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 maximum number of objects: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        numOfObj <\/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\">        weight <\/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\">[numOfObj <\/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\">        profit <\/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\">[numOfObj <\/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\">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 weights:&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\">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\">            System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Weight &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> 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\">            weight[i] <\/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>\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 profits:&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\">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\">            System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;Profit &quot;<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> 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\">            profit[i] <\/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>\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\">\\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\">        capacity <\/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\">        subset <\/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\">[numOfObj <\/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\">        table <\/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\">[numOfObj <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">][capacity <\/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>\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\">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 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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><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\">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\"> 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>\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\"> 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>\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\">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 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\">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 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: #E1E4E8\"> <\/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: #E1E4E8\"> <\/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: #E1E4E8\"> <\/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>\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\">    }<\/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\">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 style=\"color: #F97583\">int<\/span><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\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> j <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> capacity;<\/span><\/span>\n<span class=\"line\"><\/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 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: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">1<\/span><span style=\"color: #E1E4E8\">][j]) {<\/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\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/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: #E1E4E8\"> <\/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 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\">                System.out.<\/span><span style=\"color: #B392F0\">print<\/span><span style=\"color: #E1E4E8\">(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\">        }<\/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\">        System.out.<\/span><span style=\"color: #B392F0\">println<\/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\">+<\/span><span style=\"color: #E1E4E8\"> totalProfit);<\/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\">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\">        Knapsack knapsackObj <\/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\">Knapsack<\/span><span style=\"color: #E1E4E8\">();<\/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>\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 : \n\nWeight 1: 2\n\nWeight 2: 1\n\nWeight 3: 3\n\nWeight 4: 2\n\nEnter the profits : \n\nProfit 1: 12\n\nProfit 2: 10\n\nProfit 3: 20\n\nProfit 4: 15\n\nEnter the maximum capacity : 5\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>\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>\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>\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>\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>\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>\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>\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>\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 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\n\n\n<h2 class=\"wp-block-heading has-text-align-center\" id=\"M5\">Module 5<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P11\">Subset Sum Problem<\/h3>\n\n\n\n<p>Design and implement C++\/Java Program to find a subset of a given set S = {S<sub>1<\/sub>, S<sub>2<\/sub>,\u2026, S<sub>n<\/sub>} of n positive integers whose SUM is equal to a given positive integer d. For example, if S = {1, 2, 5, 6, 8} and d= 9, there are two solutions {1, 2, 6} and {1, 8}. Display a suitable message, if the given problem instance doesn&#8217;t have a solution.<\/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: 11SubsetSum.cpp\n*Description: Program to solve Subset sum problem.\n*Author\t\t: Prabodh C P\n*Compiler\t: g++ compiler 7.5.0, Ubuntu 18.04\n*Date\t\t: 31 Mar 2020\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; IS\\n{ &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: 11SubsetSum.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 7.5.0, Ubuntu 18.04<\/span><\/span>\n<span class=\"line\"><span style=\"color: #6A737D\">*Date\t\t: 31 Mar 2020<\/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\">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;\n\nclass SubSet {\n    private static final int MAX = 100;\n    private int[] stk = new int[MAX];\n    private int[] set = new int[MAX];\n    private int size;\n    private int top;\n    private int count;\n    private static int foundSoln = 0;\n\n    public SubSet() {\n        top = -1;\n        count = 0;\n    }\n\n    public void getInfo() {\n        Scanner scanner = new Scanner(System.in);\n        System.out.print(&quot;Enter the maximum number of elements: &quot;);\n        size = scanner.nextInt();\n        System.out.println(&quot;Enter the values of the elements: &quot;);\n        for (int i = 1; i &lt;= size; i++) {\n            set[i] = scanner.nextInt();\n        }\n    }\n\n    public void push(int data) {\n        stk[++top] = data;\n    }\n\n    public void pop() {\n        top--;\n    }\n\n    public void display() {\n        System.out.print(&quot;\\nSOLUTION #&quot; + (++count) + &quot; IS\\n{ &quot;);\n        for (int i = 0; i &lt;= top; i++) {\n            System.out.print(stk[i] + &quot; &quot;);\n        }\n        System.out.println(&quot;}&quot;);\n    }\n\n    public int findSubset(int pos, int sum) {\n        if (sum &gt; 0) {\n            for (int i = pos; i &lt;= size; i++) {\n                push(set[i]);\n                foundSoln = findSubset(i + 1, sum - set[i]);\n                pop();\n            }\n        }\n        if (sum == 0) {\n            display();\n            foundSoln = 1;\n        }\n        return foundSoln;\n    }\n\n    public static void main(String[] args) {\n        Scanner scanner = new Scanner(System.in);\n        int sum;\n        SubSet set1 = new SubSet();\n        set1.getInfo();\n        System.out.print(&quot;Enter the sum value: &quot;);\n        sum = scanner.nextInt();\n        System.out.println();\n\n        if (set1.findSubset(1, sum) == 0) {\n            System.out.println(&quot;The problem instance doesn't have any solution.&quot;);\n        } else {\n            System.out.println(&quot;The above-mentioned sets are the required solution to the given instance.&quot;);\n        }\n        scanner.close();\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\">class<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/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\"> 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: #E1E4E8\">    <\/span><span style=\"color: #F97583\">private<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\">[] stk <\/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\">[MAX];<\/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\">int<\/span><span style=\"color: #E1E4E8\">[] set <\/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\">[MAX];<\/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\">int<\/span><span style=\"color: #E1E4E8\"> size;<\/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\">int<\/span><span style=\"color: #E1E4E8\"> top;<\/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\">int<\/span><span style=\"color: #E1E4E8\"> count;<\/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\"> 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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">SubSet<\/span><span style=\"color: #E1E4E8\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        top <\/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\">        count <\/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\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">getInfo<\/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 style=\"color: #E1E4E8\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/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\">        size <\/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 values of the elements: &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\">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\">            set[i] <\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/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: #F97583\">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\">        stk[<\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">pop<\/span><span style=\"color: #E1E4E8\">() {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        top<\/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\">    <\/span><span style=\"color: #F97583\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">void<\/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\">        System.out.<\/span><span style=\"color: #B392F0\">print<\/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: #E1E4E8\"> <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> (<\/span><span style=\"color: #F97583\">++<\/span><span style=\"color: #E1E4E8\">count) <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/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\">        <\/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\"> top; 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\">(stk[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\">        }<\/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;}&quot;<\/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\">public<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">findSubset<\/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 style=\"color: #F97583\">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 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\">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\"> (<\/span><span style=\"color: #F97583\">int<\/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\">                <\/span><span style=\"color: #B392F0\">push<\/span><span style=\"color: #E1E4E8\">(set[i]);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">                foundSoln <\/span><span style=\"color: #F97583\">=<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #B392F0\">findSubset<\/span><span style=\"color: #E1E4E8\">(i <\/span><span style=\"color: #F97583\">+<\/span><span style=\"color: #E1E4E8\"> <\/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\">                <\/span><span style=\"color: #B392F0\">pop<\/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\">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\">            <\/span><span style=\"color: #B392F0\">display<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">            foundSoln <\/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>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/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>\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\">        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\">        <\/span><span style=\"color: #F97583\">int<\/span><span style=\"color: #E1E4E8\"> sum;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        SubSet set1 <\/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\">SubSet<\/span><span style=\"color: #E1E4E8\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        set1.<\/span><span style=\"color: #B392F0\">getInfo<\/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;Enter the sum value: &quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        sum <\/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>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        <\/span><span style=\"color: #F97583\">if<\/span><span style=\"color: #E1E4E8\"> (set1.<\/span><span style=\"color: #B392F0\">findSubset<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #79B8FF\">1<\/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\">            System.out.<\/span><span style=\"color: #B392F0\">println<\/span><span style=\"color: #E1E4E8\">(<\/span><span style=\"color: #9ECBFF\">&quot;The problem instance doesn&#39;t have any solution.&quot;<\/span><span style=\"color: #E1E4E8\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #E1E4E8\">        } <\/span><span style=\"color: #F97583\">else<\/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;The above-mentioned sets are the required solution to the given instance.&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\">        scanner.<\/span><span style=\"color: #B392F0\">close<\/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><\/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 maximum number of elements : 5\nEnter the values of the elements : \n1 2 5 6 8\nEnter the sum value : 9\n\n\nSOLUTION #1 IS\n{ 1 2 6 }\n\nSOLUTION #2 IS\n{ 1 8 }\n\nThe above-mentioned sets are the required solution to the given instance.\n\n#######################################################################################\n\nEnter the maximum number of elements : 3\nEnter the values of the elements : \n3 5 9\nEnter the sum value : 6\n\n\nThe problem instance doesnt have any solution.\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 maximum 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>\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 maximum 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>\n<span class=\"line\"><span style=\"color: #79B8FF\">3<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">5<\/span><span style=\"color: #E1E4E8\"> <\/span><span style=\"color: #79B8FF\">9<\/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\">6<\/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>\n<span class=\"line\"><\/span><\/code><\/pre><\/div>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\"\/>\n\n\n\n<h3 class=\"wp-block-heading\" id=\"P12\">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\n\/\/ Number of vertices in the graph\n#define V 5\n\nvoid printSolution(int path[]);\n\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\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\n\treturn true;\n}\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\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\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\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\n\t\/* If no vertex can be added to\n\tHamiltonian Cycle constructed so far,\n\tthen return false *\/\n\treturn false;\n}\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\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\n\tprintSolution(path);\n\treturn true;\n}\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\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\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\n\t\/\/ Print the solution\n\tfindHamCycle(g2);\n\n\treturn 0;\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: #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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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>\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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Solution 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>\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>\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 <\/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\"> (<\/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>\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>\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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">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\">\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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Enter 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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">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\">\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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Enter 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>\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>\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><\/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;\n\nclass HamiltonianCycle {\n    private static final int V = 5;\n\n    \n    private static boolean isSafe(int v, int[][] graph, int[] path, int pos) {\n\n        if (graph[path[pos - 1]][v] == 0)\n            return false;\n\n        for (int i = 0; i &lt; pos; i++) {\n            if (path[i] == v)\n                return false;\n        }\n\n        return true;\n    }\n\n\n    private static boolean hamCycleUtil(int[][] graph, int[] path, int pos) {\n\n        if (pos == V) {\n            if (graph[path[pos - 1]][path[0]] == 1)\n                return true;\n            else\n                return false;\n        }\n\n        for (int v = 1; v &lt; V; v++) {\n            if (isSafe(v, graph, path, pos)) {\n                path[pos] = v;\n\n                if (hamCycleUtil(graph, path, pos + 1) == true)\n                    return true;\n\n                path[pos] = -1;\n            }\n        }\n\n        return false;\n    }\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\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\n        printSolution(path);\n        return true;\n    }\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\n        System.out.print(path[0] + &quot; &quot;);\n        System.out.println();\n    }\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\n        Scanner scanner = new Scanner(System.in);\n\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\n        findHamCycle(g1);\n\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\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>\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>\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>\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>\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>\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>\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\">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>\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>\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>\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>\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>\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>\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>\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;<\/span><span style=\"color: #79B8FF\">\\n<\/span><span style=\"color: #9ECBFF\">Solution 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>\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>\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 <\/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\"> (<\/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>\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>\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>\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 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>\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>\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>\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\n\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 \n\nEnter the number of nodes in the second graph : 5\n\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\n\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>\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>\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>\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>\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\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 Design &amp; Analysis of\u00a0Algorithms (21CS42) course work for the IV semester of VTU university. The solutions to the lab component are coded in C++. We recommend using the Code:Blocks as the integrated development environment (IDE). You can find [&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":[91,93,89,90,94,78,26,34,35,43],"class_list":["post-643","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-programming","tag-21cs42","tag-4thsemester","tag-algorithms","tag-c-2","tag-complete-solutions","tag-cse","tag-foss","tag-java","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\/643","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=643"}],"version-history":[{"count":3,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/posts\/643\/revisions"}],"predecessor-version":[{"id":1925,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/posts\/643\/revisions\/1925"}],"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=643"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/categories?post=643"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/moodle.sit.ac.in\/blog\/wp-json\/wp\/v2\/tags?post=643"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}