Advertisement
Guest User

Untitled

a guest
Apr 23rd, 2018
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.99 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4. #define N 10
  5.  
  6. int main(void)
  7. {
  8. srand(time(NULL));
  9. int A[N];
  10. for(int i = 0; i < N; i++){
  11. A[i] = rand()%100;
  12. }
  13.  
  14. PrintArray(A,N);
  15. RecursiveMergeSort(A,0,N-1);
  16. PrintArray(A,N);
  17.  
  18. return 0;
  19. }
  20.  
  21. void RecursiveMergeSort(int *A, int p, int r){
  22. if(p < r){
  23. int q = (p+r)/2;
  24. RecursiveMergeSort(A,p,q);
  25. RecursiveMergeSort(A,q+1,r);
  26. RecursiveMerge(A,p,q,r);
  27. }
  28. }
  29.  
  30. void RecursiveMerge(int *A, int p, int q, int r){
  31. int a = q-p;
  32. int b = r-q+1;
  33. int L[a+1], R[b+1];
  34. for(int i = 0; i < a; i++){
  35. L[i] = A[p+i];
  36. }
  37. for(int j = 0; j < b; j++){
  38. R[j] = A[q+j-1];
  39. }
  40. L[a+1] = 10000;
  41. R[b+1] = 10000;
  42. int i = 0;
  43. int j = 0;
  44. for(int k = p; k < r; k++){
  45. if(L[i] < R[j]){
  46. A[k] = L[i];
  47. i++;
  48. } else {
  49. A[k] = R[j];
  50. j++;
  51. }
  52. }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement