Advertisement
defineSN

merge_net.h ; header file used in binary search code

Oct 13th, 2012
88
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. #include<stdio.h>
  2. #define MAX 50
  3.  
  4. void mergeSort(int arr[],int low,int mid,int high);
  5. void partition(int arr[],int low,int high);
  6.  
  7. void partition(int arr[],int low,int high){
  8.  
  9.     int mid;
  10.     static int count=0;
  11.     printf("inside partition, for this step>> low : %3d    &   high : %3d  , step number: %d\n",low,high,count++);
  12.     if(low<high){
  13.          mid=(low+high)/2;
  14.          partition(arr,low,mid);
  15.          partition(arr,mid+1,high);
  16.          mergeSort(arr,low,mid,high);
  17.     }
  18.    
  19. }
  20.  
  21. void mergeSort(int arr[],int low,int mid,int high){
  22.  
  23.     int i,m,k,l,temp[MAX];
  24.  
  25.     l=low;
  26.     i=low;
  27.     m=mid+1;
  28.  
  29.     while((l<=mid)&&(m<=high)){
  30.  
  31.          if(arr[l]<=arr[m]){
  32.              temp[i]=arr[l];
  33.              l++;
  34.          }
  35.          else{
  36.              temp[i]=arr[m];
  37.              m++;
  38.          }
  39.          i++;
  40.     }
  41.  
  42.     if(l>mid){
  43.         for(k=m;k<=high;k++){
  44.              temp[i]=arr[k];
  45.              i++;
  46.          }
  47.     }
  48.     else{
  49.         for(k=l;k<=mid;k++){
  50.              temp[i]=arr[k];
  51.              i++;
  52.          }
  53.     }
  54.    
  55.     for(k=low;k<=high;k++){
  56.          arr[k]=temp[k];
  57.     }
  58. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement