Advertisement
Guest User

Untitled

a guest
Mar 25th, 2019
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.74 KB | None | 0 0
  1. -UUU:----F1 merge_sort.c Bot L63 [(C/l Abbrev)] --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
  2. File Edit Options Buffers Tools C Help
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6.  
  7. int sort(int array[], int size, int start, int m, int end){
  8.  
  9. int idx1 = start;
  10. int idx2 = m+1;
  11.  
  12. while(idx1 <= m && idx2 <= end){
  13.  
  14. if(array[idx1] < array[idx2]){
  15. idx2+=1;
  16. }
  17. else if(array[idx1] > array[idx2]){
  18. int tmp = array[idx1];
  19. array[idx1] = array[idx2];
  20. array[idx2] = tmp;
  21. idx1+=1;
  22. }
  23. else{
  24. idx2+=1;
  25. int tmp = array[idx1];
  26. array[idx1] = array[idx2];
  27. array[idx2] = tmp;
  28. }
  29.  
  30. }
  31. return 0;
  32. }
  33.  
  34. int mergeSort(int* array, int size, int start, int end){
  35. printf("s%d d%d\n", start,end);
  36. if( (start-end) == 0)
  37. return -1;
  38.  
  39. int m = (start+end)/2;
  40. mergeSort(array, size, start, m);
  41. mergeSort(array,size, m+1, end);
  42. for(int i = start; i <= end;i++){
  43. printf("%d ",array[i]);
  44. }
  45. printf("\n");
  46. sort(array, size, start,m,end);
  47. for(int i = start; i <= end;i++){
  48. printf("%d ",array[i]);
  49. }
  50. printf("\n");
  51. return -1;
  52. }
  53.  
  54.  
  55. int main(){
  56. int* array = (int*)malloc(sizeof(int)*6);
  57. array[0] = 2;
  58. array[1] = 3;
  59. array[2] = 1;
  60. array[3] = 8;
  61. array[4] = 9;
  62. array[5] = 4;
  63. for(int i = 0; i < 7;i++){
  64. printf("%d ",array[i]);
  65. }
  66. mergeSort(array, 6, 0, 6);
  67. printf("\n");
  68. array[0] = 2;
  69. array[1] = 3;
  70. array[2] = 1;
  71. array[3] = 8;
  72. array[4] = 9;
  73. array[5] = 4;
  74. for(int i = 0; i < 7;i++){
  75. printf("%d ",array[i]);
  76. }
  77. return 1;
  78.  
  79. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement