Advertisement
Guest User

fg

a guest
Oct 22nd, 2019
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.29 KB | None | 0 0
  1. #include <stdio.h>
  2. #include<stdlib.h>
  3.    
  4. void init_array(int *a,int n);
  5. void swapp (int *a, int n);
  6. void shake_sort (int *a, int n);
  7. void printff(int *a,int n);
  8.  
  9. int main() {
  10.     int n;
  11.     printf("Введите размер массива:");
  12.     scanf("%d",&n);
  13.     srand(1234568);
  14.     int a[n];
  15.     init_array(a,n);
  16.     printf("Элементы массива:\t");
  17.     printff(a,n);
  18.     shake_sort(a,n);
  19.     printf("Отсортрованный массив:\t");
  20.     printff(a,n);
  21.     return 0;
  22. }
  23.  
  24. void init_array(int *a,int n)
  25. {
  26.     for(int i=0;i < n;i++)
  27.     {
  28.         a[i] = rand() % 100;
  29.     }
  30. }
  31.  
  32. void shake_sort (int *a, int n)
  33. {
  34.     int left_mark = 0;
  35.     int right_mark = n - 1 ;
  36.     while (left_mark <= right_mark){
  37.         for (int j = left_mark; j <= right_mark; j++){
  38.             if(a[j - 1] > a[j])
  39.                 swapp(a,j);
  40.             right_mark--;
  41.         }
  42.         for(int i = right_mark; i >= left_mark ; i-- ){
  43.             if (a[i - 1] > a[i])
  44.                 swapp(a,i);
  45.             left_mark++;
  46.         }
  47.     }
  48. }
  49.  
  50. void swapp(int *a, int i)
  51. {
  52.     int temp = a[i];
  53.     a[i] = a[i - 1];
  54.     a[i - 1] = temp;
  55. }
  56.  
  57. void printff(int *a,int n){
  58.     for (int i = 0; i < n; i++){
  59.         printf("%d \t",a[i]);
  60.     }
  61.     printf("\n");
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement