mramine364

merge sort

Feb 1st, 2016
138
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.17 KB | None | 0 0
  1. #include <iostream>
  2.  
  3. using namespace std;
  4.  
  5. void merge(int arr[],int size, int low, int middle, int high ){
  6.     int temp[size];
  7.     for(int i=low; i<=high; i++){
  8.         temp[i] = arr[i];
  9.     }
  10.     int i=low, j=middle+1, k=low;
  11.     while( i<=middle && j<=high ){
  12.         if( temp[i]<temp[j] ){
  13.             arr[k] = temp[i];
  14.             i++;
  15.         }
  16.         else{
  17.             arr[k] = temp[j];
  18.             j++;
  19.         }
  20.         k++;
  21.     }
  22.     while( i<=middle ){
  23.         arr[k] = temp[i];
  24.         i++;      
  25.         k++;
  26.     }
  27.     while( j<=high ){
  28.         arr[k] = temp[j];
  29.         j++;      
  30.         k++;
  31.     }
  32. }
  33. void mergeSort(int arr[], int size, int low, int high){
  34.     if( low < high ){
  35.         int middle = ( low + high ) / 2;
  36.         mergeSort(arr, size, low, middle);
  37.         mergeSort(arr, size, middle+1, high);
  38.         merge(arr, size, low, middle, high);
  39.     }
  40. }
  41. int main()
  42. {
  43.     const int size = 7;
  44.     //int numbers[] = {5, 10, 1, 6, 2, 9, 3, 8, 7, 4};
  45.     int numbers[] = {38, 27, 43, 3, 9, 82, 10};
  46.     mergeSort(numbers, size, 0, size-1);
  47.     for(int i=0; i<size; i++){
  48.         cout << numbers[i] << " ";
  49.     }
  50.     return 0;
  51. }
Advertisement
Add Comment
Please, Sign In to add comment