Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- #define n 5
- const int constante = 100000;
- void intercala ( int A[n],int l,int m , int r){
- int n1= m-l +1;
- int n2= r-m;
- int v1[n1+1];
- int v2[n2+2];
- int i,j ,k;
- for (i=0;i<n1;i++){
- v1[i]=A[l+i];
- }
- for (i=0;i<n2;i++){
- v2[i]=A[m+1+i];
- }
- v1[n1]=constante;
- v2[n2]=constante;
- i=0;
- j=0;
- for(k=l;k<=r;k++){
- if(v1[i]<v2[j]){
- A[k]=v1[i];
- i++;
- }
- else{
- A[k]=v2[j];
- j++;
- }
- }
- }
- void mergesort_aux( int A[n], int l, int r){
- if(l<r){
- int meio=(l+r)/2;
- mergesort_aux(A,l,meio);
- mergesort_aux(A,meio+1,r);
- intercala(A,l,meio,r);
- }
- }
- void mergesort(int A[n]){
- mergesort_aux(A,0,n-1);
- }
- int main (){
- int A[n];
- int i;
- for (i=0;i<n;i++){
- cin>>A[i];
- }
- mergesort(A);
- for (i=0;i<n;i++){
- cout<<A[i]<<" ";
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment