Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #include <stdio.h>
- #include <stdlib.h>
- void cit(int a[], int &n)
- {
- cin >> n;
- int i;
- for(i = 0; i < n; ++i)
- cin >> a[i];
- }
- void interclas(int a[], int &dima, int b[], int &dimb, int c[], int &k)
- {
- int i = 0, j = 0;
- while(i < dima && j < dimb)
- {
- if(a[i] < b[j])
- c[k++] = a[i++];
- else
- c[k++] = b[j++];
- }
- while(i < dima)
- c[k++] = a[i++];
- while(j < dimb)
- c[k++] = b[j++];
- }
- void afis(int c[], int k);
- void combina(int v[], int st, int mij, int dr)
- {
- int c[200], i = st, j = mij+1, k = 0;
- while(i <= mij && j <= dr)
- if(v[i] < v[j])
- c[k++] = v[i++];
- else
- c[k++] = v[j++];
- while(i <= mij)
- c[k++] = v[i++];
- while(j <= dr)
- c[k++] = v[j++];
- for(int i = 0; i < k; ++i)
- v[i+st] = c[i];
- afis(c, k);
- }
- void afis(int c[], int k)
- {
- for(int i = 0; i < k; ++i)
- cout << c[i] << ' ';
- cout << "\n";
- }
- void divide(int v[], int st, int dr)
- {
- if(st < dr)
- {
- int mij = (st + dr) / 2;
- divide(v, st, mij);
- divide(v, mij + 1, dr);
- combina(v, st, mij, dr);
- }
- }
- void partitie_hoare(int v[], int st, int dr)
- {
- int x, i, j;
- x = v[(st + dr) / 2];
- i = st;
- j = dr;
- while(i < j)
- {
- while(v[i] < x)
- ++i;
- while(v[j] > x)
- --j;
- if(i == j)
- return;
- else
- {
- int aux = v[i];
- v[i] = v[j];
- v[j] = aux;
- }
- }
- return;
- }
- void partitie2(int v[], int st, int dr)
- {
- int x, i, j;
- x = st;
- i = st;
- j = dr;
- while(i < j)
- {
- while(v[i] < x)
- ++i;
- while(v[j] > x)
- --j;
- if(i == j)
- return;
- else
- {
- int aux = v[i];
- v[i] = v[j];
- v[j] = aux;
- }
- }
- return;
- }
- int gasire_pivot(int v[], int st, int dr)
- {
- }
- void divideQsort(int v[], int st, int dr)
- {
- if(st < dr)
- {
- int p = gasire_pivot(v, st, dr);
- divideQsort(v, st, p);
- divideQsort(v, p+1, dr);
- }
- }
- int main()
- {
- int a[100], dima;
- int b[100], dimb;
- int c[200], k = 0;
- cit(a, dima);
- //cit(b, dimb);
- //interclas(a, dima, b, dimb, c, k);
- //divide(a, 0, dima-1);
- //divideQsort(a, 0, dima-1);
- //partitie_hoare(a, 0, dima-1);
- partitie2(a, 0, dima-1);
- afis(a, dima);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement