Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- using namespace std;
- void merge(int arr[],int size, int low, int middle, int high ){
- int temp[size];
- for(int i=low; i<=high; i++){
- temp[i] = arr[i];
- }
- int i=low, j=middle+1, k=low;
- while( i<=middle && j<=high ){
- if( temp[i]<temp[j] ){
- arr[k] = temp[i];
- i++;
- }
- else{
- arr[k] = temp[j];
- j++;
- }
- k++;
- }
- while( i<=middle ){
- arr[k] = temp[i];
- i++;
- k++;
- }
- while( j<=high ){
- arr[k] = temp[j];
- j++;
- k++;
- }
- }
- void mergeSort(int arr[], int size, int low, int high){
- if( low < high ){
- int middle = ( low + high ) / 2;
- mergeSort(arr, size, low, middle);
- mergeSort(arr, size, middle+1, high);
- merge(arr, size, low, middle, high);
- }
- }
- int main()
- {
- const int size = 7;
- //int numbers[] = {5, 10, 1, 6, 2, 9, 3, 8, 7, 4};
- int numbers[] = {38, 27, 43, 3, 9, 82, 10};
- mergeSort(numbers, size, 0, size-1);
- for(int i=0; i<size; i++){
- cout << numbers[i] << " ";
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment