Advertisement
Guest User

Untitled

a guest
Mar 15th, 2012
222
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.46 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <cstdlib>
  4. #include <vector>
  5. using namespace std;
  6.  
  7. vector<int> merge(vector<int> in1, vector<int> in2) {
  8.     vector<int> out;
  9.     int size = in1.size()*2;
  10.     int i,j=0,k=0;
  11.     for (i=0;i<size;i++) {
  12.         if (in1[j] < in2[k]) {
  13.             out.push_back(in1[j]);
  14.             j++;
  15.         }
  16.         else {
  17.             out.push_back(in2[k]);
  18.             k++;
  19.         }
  20.         if (j==size/2 || k==size/2)
  21.             break;
  22.     }
  23.     if (j == size/2 && k<size/2) {
  24.         for (i=k;i<size/2;i++) {
  25.             out.push_back(in2[i]);
  26.         }
  27.     }
  28.     if (k == size/2 && j<size/2) {
  29.         for (i=j;i<size/2;i++) {
  30.             out.push_back(in1[i]);
  31.         }
  32.     }
  33.     return out;
  34. }
  35.  
  36. vector<int> ord(vector<int> vect) {
  37.     vector<int> dev;
  38.     if (vect.size() == 2) {
  39.         if (vect[0]>vect[1]) {
  40.             dev.push_back(vect[1]);
  41.             dev.push_back(vect[0]);
  42.         }
  43.         else {
  44.             dev.push_back(vect[0]);
  45.             dev.push_back(vect[1]);
  46.         }
  47.         return dev;
  48.     }
  49.    
  50.     vector<int> a1;
  51.     vector<int> a2;
  52.     int i;
  53.    
  54.     for (i=0;i<vect.size();i++) {
  55.         if (i<vect.size()/2)
  56.             a1.push_back(vect[i]);
  57.         else
  58.             a2.push_back(vect[i]);
  59.     }
  60.     a1 = ord(a1);
  61.     a2 = ord(a2);
  62.     return merge(a1,a2);
  63. }
  64.  
  65. int main() {
  66.     ifstream fin("num.txt");
  67.     char numb[7];
  68.     vector<int> numeros;
  69.     int i,j;
  70.     for (i=0;i<=65535;i++) {
  71.         fin.getline(numb,7);
  72.         numeros.push_back(atoi(numb));
  73.     }
  74.     FILE *f = fopen("prueba.txt","w");
  75.     vector<int> result = ord(numeros);
  76.     for (i=0;i<65536;i++) {
  77.         fprintf(f,"%d\n",result[i]);
  78.     }
  79.     fclose(f);
  80.     printf("Time: %d\n", clock());
  81.     return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement