Advertisement
green1ant

31-1

Jan 20th, 2019
193
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.98 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3.  
  4. void sort(int *ms, int k)
  5. {
  6.     int i, j, n;
  7.     int gap; // шаг сортировки
  8.     int flg; // флаг окончания этапа сортировки
  9.     for(gap = k/2; gap > 0; gap /= 2)
  10.         do
  11.         {
  12.             flg = 0;
  13.             for(i = 0, j = gap; j < k; i++, j++)
  14.                 if(*(ms+i) > *(ms+j)) // сравниваем отстоящие на gap элементы
  15.                 {
  16.                     n = *(ms+j);
  17.                     *(ms+j) = *(ms+i);
  18.                     *(ms+i) = n;
  19.                     flg = 1; // есть ещё нерассортированные данные
  20.                 }
  21.         }
  22.         while (flg);   // окончание этапа сортировки
  23. }
  24.  
  25. int main()
  26. {
  27.     printf("Start\n");
  28.  
  29.     long arr[8] = {123, 43, 94, 12, 23, 85, 33, 50};
  30.     sort(arr, 8);
  31.  
  32.     for(int i = 0; i < 8; i++){
  33.         printf("%d, ", *(arr+i));
  34.     }
  35.  
  36.     return 0;
  37. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement