Advertisement
Guest User

Untitled

a guest
Jun 30th, 2015
220
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.08 KB | None | 0 0
  1. #include<stdio.h>
  2. int main(){
  3. int a[100], n, k;
  4. printf("Enter no of elements of array");
  5. scanf("%d",&n);
  6. printf("Enter elements of array");
  7. for(k=0;k<n;k++){
  8. scanf("%d",&a[k]);}
  9. mergesort(a,0,n-1);
  10. for(k=0;k<n;k++){
  11. printf("%d",a[k]);}
  12.  
  13. }
  14. void mergesort(int* a,int i,int j){
  15. int mid;
  16. if(i==j)
  17. return;
  18. else{
  19. mid=(i+j)/2;
  20.  
  21. mergesort(a,i,mid);
  22. mergesort(a,mid+1,j);
  23. join(a,i,j);
  24.  
  25.  
  26.  
  27. }
  28.  
  29.  
  30. }
  31. void join(int* a,int i,int j) {
  32. int mid,middle,k,l;
  33. int c[100];
  34. mid=(i+j)/2 + 1;
  35. middle=mid;
  36. for(k=i;k<=j;k++){
  37.  
  38.  
  39. if (a[i] <=mid)
  40. {
  41. c[k]=a[i];
  42. i++;
  43. }
  44. else
  45. {
  46. c[k]=a[mid];
  47. mid++;
  48. }
  49. if(i==middle)
  50. {
  51. for(l=k+1;l<=j;l++){
  52. c[l]=a[mid];
  53. mid++;
  54.  
  55. }
  56. break;
  57. }
  58. else
  59. if(mid==j+1)
  60. {
  61. for(l=k+1;l<=j;l++){
  62. c[l]=a[i];
  63. i++;
  64. }
  65. break;
  66. }
  67.  
  68.  
  69.  
  70. }
  71.  
  72. for(k=0;k<=j;k++){
  73. a[k]=c[k];
  74.  
  75.  
  76. }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement