Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void interclasare(int a[100], int st, int dr, int m)
- {
- int b[100];
- int i, j, k=0;
- i=st; j=m+1;
- while(i<=m && j<=dr)
- {
- if(a[i]<=a[j])
- {
- b[k]=a[i];
- i++;
- }
- else
- {
- b[k]=a[j];
- j++;
- }
- k++;
- }
- if(i<=m)
- for(int p=i; p<=m; p++)
- {
- b[k]=a[p];
- k++;
- }
- if(j<=dr)
- for(int q=j; q<=dr; q++)
- {
- b[k]=a[q];
- k++;
- }
- k=0;
- for(int r=st; r<=dr; r++)
- {
- a[r]=b[k];
- k++;
- }
- }
- void mergesort(int a[100], in
- t st, int dr)
- {
- int m;
- if (st<dr)
- {
- m=(st+dr)/2;
- mergesort(a, st, m);
- mergesort(a, m+1, dr);
- interclasare(a, st, dr, m);
- }
- }
- int main()
- {
- int n, a[100], i;
- cout<<"n="; cin>>n;
- cout<<"Introduceti elementele vectorului: ";
- for(i=0; i<n; i++) cin>>a[i];
- mergesort(a, 0, n-1);
- cout<<"Vectorul sortat este: ";
- for(i=0; i<n; i++) cout<<a[i]<<" ";
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement