Advertisement
Guest User

Untitled

a guest
Nov 14th, 2019
255
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.97 KB | None | 0 0
  1. //*******************Merge Sort**************************
  2.  
  3. void merge(int*a, int start, int middle, int end, int*b) {
  4. int i;
  5. int j = start;
  6. int k = middle + 1;
  7. for (i = start; j <= middle && k <= end; i++) {
  8. if (a[j] > a[k]) {
  9. b[i] = a[j];
  10. j++;
  11. } else {
  12. b[i] = a[k];
  13. k++;
  14. }
  15. }
  16. while (j <= middle)
  17. b[i++] = a[j++];
  18.  
  19. while (k <= end)
  20. b[i++] = a[k++];
  21.  
  22. for (i = start; i <= end; i++)
  23. a[i] = b[i];
  24. }
  25.  
  26. //*******************Merge Sort**************************
  27.  
  28. void mergeSortR(int* a, int start, int end, int* b) {
  29. int middle;
  30. if (start >= end) return;
  31.  
  32. middle = start + (end - start) / 2;
  33. mergeSortR(a, start, middle, b);
  34. mergeSortR(a, middle + 1, end, b);
  35. merge(a, start, middle, end, b);
  36. }
  37.  
  38. long mergeSort(int* a, int n) {
  39. int* b = malloc(sizeof(int) * n);
  40. int i;
  41. for (i = 0; i < n; i++) {
  42. b[i] = a[i];
  43. }
  44. mergeSortR(a, 0, n - 1, b);
  45. return 0;
  46. }
  47. //*******************Bucket Sort**************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement