Advertisement
apl-mhd

Huda sir Merge sort

Mar 20th, 2017
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.85 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. using namespace std;
  4.  
  5.  
  6. void merge(int A[],int i1, int j1, int i2, int j2){
  7.    
  8.     int i, j, temp[50], k=0;
  9.    
  10.     i = i1;
  11.     j = i2;
  12.    
  13.     while(i<=j1 && j<=j2){
  14.        
  15.         if(A[i]<A[j])
  16.             temp[k++] = A[i++];
  17.         else
  18.             temp[k++] = A[j++];
  19.        
  20.     }
  21.    
  22.    
  23.         while(i<=j1)
  24.             temp[k++] = A[i++];
  25.    
  26.     while(j<=j2)
  27.             temp[k++] = A[j++];
  28.    
  29.     for(i=i1, j=0; i<=j2;i++,j++){
  30.        
  31.         A[i] = temp[j];
  32.        
  33.         }
  34.    
  35.     }
  36.  
  37.  
  38. void mergeSort(int A[], int i, int j){
  39.    
  40.         int mid;
  41.         if(i < j){
  42.                
  43.              mid = (i+j)/2;
  44.            
  45.             mergeSort(A, i, mid);
  46.             mergeSort(A, mid+1, j);
  47.             merge(A, i,mid, mid+1, j);
  48.            
  49.            
  50.         }
  51.    
  52. }
  53.  
  54.  
  55. int main(int argc, char **argv)
  56. {
  57.    
  58.    int A[10] = {10,9,8,7,6,5,4,3,2,1};
  59.    
  60.    mergeSort(A, 0,9);
  61.    
  62.    for(int i=0; i<10; i++){
  63.      
  64.       printf("%d  ", A[i]);
  65.        
  66.       }
  67.    
  68.     return 0;
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement