Advertisement
Farjana_akter

Merge Sort

May 30th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.88 KB | None | 0 0
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. void merge(int A[],int L,int mid,int R){
  4. int n = mid-L+1;
  5. int m = R-mid;
  6. int Left[n+5],Right[m+5];
  7. for(int i = 0; i < n; i++){
  8. Left[i] = A[L+i];
  9. }
  10. for(int i = 0; i < m; i++){
  11. Right[i] = A[mid+1+i];
  12. }
  13. Left[n] = Right[m ] = 99999;
  14. int i = 0;
  15. int j = 0;
  16. for(int k = L; k <= R; k++){
  17. if(Left[i] <= Right[j]){
  18. A[k] = Left[i];
  19. i++;
  20. }else{
  21. A[k] = Right[j];
  22. j++;
  23. }
  24. }
  25. }
  26. void mergeSort(int A[],int L,int R){
  27. if(L < R){
  28. int mid = (L+R)/2;
  29. mergeSort(A,L,mid);
  30. mergeSort(A,mid+1,R);
  31. merge(A,L,mid,R);
  32. }
  33. }
  34. int main(){
  35. int A[] = {5,8,3,1,2};
  36. mergeSort(A,0,4);
  37. for(int i =0 ; i < 5; i++){
  38. printf("%d ",A[i]);
  39. }
  40. return 0;
  41. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement