JosepRivaille

P70093: Fusió de taules

May 23rd, 2015
908
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.71 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. using namespace std;
  4.  
  5.  
  6. vector<double> fusio(const vector<double>& v1, const vector<double>& v2) {
  7.     int tam_v1 = v1.size();
  8.     int tam_v2 = v2.size();
  9.     int tam_res = tam_v1 + tam_v2;
  10.     vector<double> fus(tam_res);
  11.     int i = 0, j = 0, k = 0;
  12.     while (i < tam_v1 && j < tam_v2) {
  13.         if (v1[i] < v2[j]) {
  14.             fus[k] = v1[i];
  15.             ++i;
  16.             ++k;
  17.         }
  18.         else if (v2[j] < v1[i]) {
  19.             fus[k] = v2[j];
  20.             ++j;
  21.             ++k;
  22.         }
  23.         else if (v2[j] == v1[i]) {
  24.             fus[k] = v1[i];
  25.             ++i;
  26.             fus[k+1] = v2[j];
  27.             ++j;
  28.             k += 2;
  29.         }
  30.     }
  31.     while (i < tam_v1) {
  32.         fus[k] = v1[i];
  33.         ++i;
  34.         ++k;
  35.     }
  36.     while (j < tam_v2) {
  37.         fus[k] = v2[j];
  38.         ++j;
  39.         ++k;
  40.     }
  41.     return fus;
  42. }
  43.  
  44. //JosepRivaille
Advertisement
Add Comment
Please, Sign In to add comment