Guest User

Untitled

a guest
Jun 11th, 2015
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.39 KB | None | 0 0
  1. #include <iostream>
  2. #include <cmath>
  3. #include <iostream>
  4. #include <iomanip>
  5. #include <cstdlib>
  6. #include <time.h>
  7. using namespace std;
  8. int d [100];
  9.  
  10. void mergeSort(int p, int k);
  11. void merge_ (int p, int q, int k);
  12. int main() {
  13.     int i;
  14.     int N = 100;
  15.     srand((unsigned)time(NULL));
  16.     for(i = 0; i < N; i++) d[i] = rand() % 100;
  17.     for(i = 0; i < N; i++) cout << setw(4) << d[i];
  18.     cout << endl;
  19.     //Sortujemy
  20.     mergeSort(0, 99);
  21.     // Wyƛwietlamy wynik sortowania
  22.     cout << "Po sortowaniu:\n\n";
  23.     for(i = 0; i < N; i++) cout << setw(4) << d[i];
  24.     cout << endl;
  25.     return 0;
  26. }
  27. void mergeSort(int p, int k) {
  28.     for (int i=0; i<100; i++) {
  29.         cout << d[i] << "\n";
  30.     }
  31.     if (p<k) {
  32.         int q = p+k;
  33.         q = q/2;
  34.         mergeSort(p, q);
  35.         mergeSort(q+1, k);
  36.         merge_(p, q, k);
  37.     }
  38. }
  39. void merge_ (int p, int q, int r) {
  40.     int n1 = q-p;
  41.     int n2 = r-q;
  42.     int* L = new int [n1];
  43.     int* R = new int [n2];
  44.     for (int i=0; i<n1; i++) {
  45.         L[i] = d[p+i];
  46.         //cout << d[p+i] << "\n";
  47.         //cout << L[i] << "\n";
  48.     }
  49.     for (int i=0; i<n2; i++) {
  50.         R[i] = d[q+i];
  51.     }
  52.     int i = 0;
  53.     int j = 0;
  54.     for (int k=0; k<=r; k++) {
  55.         if (L[i]<=R[j]) {
  56.             d[k]=L[i];
  57.             i=i+1;
  58.         }
  59.         else {
  60.             d[k]=R[j];
  61.             j=j+1;
  62.         }
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment