fork download
  1.  
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <time.h>
  5.  
  6.  
  7. void prn(int* a,int n){
  8. for (int i=0;i<n;i++)
  9. printf("%+3d ",a[i]);
  10. putchar('\n');
  11. }
  12.  
  13. void swap(int& a,int& b){
  14. int u=a;
  15. a=b;
  16. b=u;
  17. }
  18.  
  19. void h_sort(int* a,int n){
  20. int u1=0,u2=n-1//границы сортируемого диапазона
  21. ,j=0;
  22. do {
  23. if (a[j]<0){
  24. swap(a[j],a[u2]);
  25. u2--;
  26. } else
  27. if (a[j]==0){
  28. swap(a[j],a[u1]);
  29. u1++;
  30. j++;
  31. }else j++;
  32. prn(a,n);
  33. }while (j<=u2);
  34.  
  35.  
  36.  
  37. }
  38. int main(void){
  39. const int N=25;
  40. srand(time(NULL));
  41. int arr[N];
  42. for (int i=N-1;i>=0;i--)
  43. if (rand()%10>=8)
  44. arr[i]=0;
  45. else arr[i]=rand()%80-40;
  46.  
  47. prn(arr,N);
  48. prn(arr,N);
  49. putchar('\n');
  50. h_sort(arr,N);
  51. putchar('\n');
  52. prn(arr,N);
  53.  
  54. }
  55.  
Success #stdin #stdout 0s 15240KB
stdin
Standard input is empty
stdout
 -9 -40 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0  +5 +15  -6  -7 
 -9 -40 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0  +5 +15  -6  -7 

 -7 -40 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0  +5 +15  -6  -9 
 -6 -40 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0  +5 +15  -7  -9 
+15 -40 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0  +5  -6  -7  -9 
+15 -40 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0  +5  -6  -7  -9 
+15  +5 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0 -40  -6  -7  -9 
+15  +5 -12 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26  +0 -40  -6  -7  -9 
+15  +5  +0 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +5 +15 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +5 +15 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +5 +15 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +5 +15 +25  +4 +36  +0  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 -20 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 +26 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 -20 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 -32 -25 +28  +0 -19  +0  +0 -27 +36 -16 -20 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 -16 -25 +28  +0 -19  +0  +0 -27 +36 -32 -20 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 +36 -25 +28  +0 -19  +0  +0 -27 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 +36 -25 +28  +0 -19  +0  +0 -27 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 +36 -27 +28  +0 -19  +0  +0 -25 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0 +15 +25  +4 +36  +5  +3 +26 +36  +0 +28  +0 -19  +0 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0  +0 +25  +4 +36  +5  +3 +26 +36 +15 +28  +0 -19  +0 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0  +0 +25  +4 +36  +5  +3 +26 +36 +15 +28  +0 -19  +0 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0  +0  +0  +4 +36  +5  +3 +26 +36 +15 +28 +25 -19  +0 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0  +0  +0  +4 +36  +5  +3 +26 +36 +15 +28 +25  +0 -19 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9 
 +0  +0  +0  +0  +0 +36  +5  +3 +26 +36 +15 +28 +25  +4 -19 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9 

 +0  +0  +0  +0  +0 +36  +5  +3 +26 +36 +15 +28 +25  +4 -19 -27 -25 -16 -32 -20 -12 -40  -6  -7  -9