melnikovmaxim

C_Sort insertion

Jan 2nd, 2020
245
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.04 KB | None | 0 0
  1. //Сортировка вставками
  2. //ссылка с алгоритмом https://ru.wikipedia.org/wiki/Сортировка_вставками
  3. #include <stdio.h>
  4. #include <stdlib.h>
  5.  
  6. #define size 100
  7.  
  8. void sort(int* a)
  9. {
  10.     for (int i = 1; i < size; i++)
  11.     {
  12.         int tmp = a[i];
  13.         int j = i - 1;
  14.  
  15.         while (j > -1 && a[j] > tmp) //проходим назад, пока есть элементы и элемент меньше предыдущего, переставляя элементы вправо, освобождая место.
  16.         {
  17.             a[j + 1] = a[j];
  18.             j = j - 1;
  19.         }
  20.  
  21.         a[j + 1] = tmp; //дошли до конца или нашли элемент меньше, то индекс + 1 этого элемента присваиваем значение.
  22.     }
  23. }
  24.  
  25. int main()
  26. {
  27.     int i;
  28.  
  29.     int a[size];
  30.  
  31.     printf("List before sorting\n");
  32.  
  33.     for (i = 0; i < size; i++)
  34.     {
  35.         a[i] = rand() % 100;
  36.         printf("%d ", a[i]);
  37.     }
  38.  
  39.     sort(a);
  40.  
  41.     printf("\nList after sorting\n");
  42.  
  43.     for (i = 0; i < size; i++)
  44.         printf("%d ", a[i]);
  45. }
Add Comment
Please, Sign In to add comment