Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <bits/stdc++.h>
- using namespace std;
- void merge(int A[],int L,int mid,int R){
- int n = mid-L+1;
- int m = R-mid;
- int Left[n+5],Right[m+5];
- for(int i = 0; i < n; i++){
- Left[i] = A[L+i];
- }
- for(int i = 0; i < m; i++){
- Right[i] = A[mid+1+i];
- }
- Left[n] = Right[m ] = 99999;
- int i = 0;
- int j = 0;
- for(int k = L; k <= R; k++){
- if(Left[i] <= Right[j]){
- A[k] = Left[i];
- i++;
- }else{
- A[k] = Right[j];
- j++;
- }
- }
- }
- void mergeSort(int A[],int L,int R){
- if(L < R){
- int mid = (L+R)/2;
- mergeSort(A,L,mid);
- mergeSort(A,mid+1,R);
- merge(A,L,mid,R);
- }
- }
- int main(){
- int A[] = {5,8,3,1,2};
- mergeSort(A,0,4);
- for(int i =0 ; i < 5; i++){
- printf("%d ",A[i]);
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement