sofiakrakova

Merge_run

Feb 24th, 2020
107
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. void Merge_run(ifstream &a, ifstream &b, ofstream &f)
  2. {
  3.     int sl1=0, sl2=0;
  4.     int i = 0;
  5.     int keyA=0, keyB=0;
  6.     int j = 0, g = 1;
  7.     do
  8.     {
  9.         if (keyA < sl2||i==0)
  10.         a >> sl1;
  11.         else sl1 = keyA;
  12.         i++;
  13.         if (j == 1 || g == 1) {
  14.             b >> sl2;
  15.         }
  16.         if (sl1 < sl2)
  17.         {
  18.             //Copy(a, f);
  19.             f << sl1 << " ";
  20.             a >> keyA;
  21.             if (a.eof())
  22.                 eor = true;
  23.             else
  24.             {
  25.                 eor = sl1>keyA;
  26.                 if (!eor)
  27.                     if (keyA < sl2)
  28.                     f << keyA << " ";
  29.  
  30.             }
  31.  
  32.             if (eor)
  33.             {
  34.                 do
  35.                 {
  36.                     f << sl2 << " ";
  37.                     j = 1;
  38.                     b >> keyB;
  39.                     if (b.eof())
  40.                         eor = true;
  41.                     else
  42.                     {
  43.                         eor = sl2 > keyB;
  44.                         if (!eor)
  45.                             f << keyB << " ";
  46.  
  47.                     }
  48.  
  49.                 } while (!eor);
  50.             }
  51.         }
  52.         else
  53.         {
  54.                 //Copy_run(a, f);
  55.             f << sl2 << " ";
  56.             b >> keyB;
  57.             if (b.eof())
  58.                 eor = true;
  59.             else
  60.             {
  61.                 eor = sl2 > keyB;
  62.                 if (!eor)
  63.                     f << keyB << " ";
  64.             }
  65.  
  66.             if (eor)
  67.             {
  68.                 do
  69.                 {
  70.                     f << sl1 << " ";
  71.                     a >> keyA;
  72.                     if (a.eof())
  73.                         eor = true;
  74.                     else
  75.                     {
  76.                         eor = sl1 > keyA;
  77.                         if (!eor)
  78.                             f << keyA << " ";
  79.  
  80.                     }
  81.  
  82.                 } while (!eor);
  83.             }
  84.         }
  85.        
  86.  
  87.        
  88.     } while (!eor);
  89.  
  90. }
Advertisement
Add Comment
Please, Sign In to add comment