Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.34 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <math.h>
  4. #include <time.h>
  5.  
  6. void scal(int, int, int, int [], int []);
  7. void bin(int, int [], int []);
  8.  
  9. int main()
  10. {
  11.  
  12. int a[50],b[50];
  13. srand(time(NULL));
  14.  
  15. int i;
  16. for(i=0;i<50;i++)
  17. {
  18. a[i]=rand()%301;
  19. }
  20. bin(50,a,b);
  21. for(i=0;i<50;i++)
  22. {
  23. printf("%d\n",b[i]);
  24. }
  25.  
  26.  
  27. return 0;
  28. }
  29.  
  30.  
  31. void bin(int n, int a[], int b[])
  32. {
  33. int i,k=0,p=0;
  34. i=1;
  35. while(i<n)
  36. {
  37. k=1;
  38. while(k<n)
  39. {
  40. if(k+2*i-1<=n) p=k+2*i-1;
  41. else if (k+i<=n) p=n;
  42. else p=0;
  43.  
  44. if(p>0)
  45. {
  46. scal(k,i,p,a,b);
  47. k=k+i+i;
  48. }
  49. }
  50. i=2*i;
  51. }
  52. }
  53.  
  54.  
  55.  
  56.  
  57. void scal(int l, int s, int p, int a[], int b[])
  58. {
  59. int l1,p1,i;
  60. l1=l;
  61. p1=s+1;
  62. i=l;
  63.  
  64. while(l1<s && p1<p)
  65. {
  66. if(a[l1]>a[p1])
  67. {
  68. b[i]=a[p1];
  69. p1++;
  70. }
  71. else
  72. {
  73. b[i]=a[l1];
  74. l1++;
  75. }
  76. i++;
  77. }
  78.  
  79. while(l1<s)
  80. {
  81. b[i]=a[l1];
  82. i++;
  83. l1++;
  84. }
  85.  
  86. while(p1<p)
  87. {
  88. b[i]=a[p1];
  89. i++;
  90. p1++;
  91. }
  92. i=l;
  93. while(i<p)
  94. {
  95. a[i]=b[i];
  96. i++;
  97. }
  98. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement