Advertisement
dllbridge

Untitled

Dec 8th, 2021
1,195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.21 KB | None | 0 0
  1.  
  2. // 2021_December_07
  3. // Bubble_sorting
  4.  
  5. #include   <stdio.h>
  6.  
  7. int arr[99] =  { 17, 5, 0, 777, 11, -2, 198, -3, 7, 3 };        //  Этот массив требуется сортировать по возрастанию
  8.  
  9. int  length = 10;                                                                     //  Кол-во элементов в массиве
  10.  
  11.  
  12. void bubble_sorting(int *a, int size);            //                                            Сортировка пузырьком
  13. void           show(int *a, int size);            //                             Показать на экране элементы массива
  14. void           swap(int &a, int   &b);            //                       Меняет местами содержимое двух переменных
  15.  
  16. //                           Точка входа в программу
  17. ////////////////////////////////////////////////////
  18. int main()                                        //
  19. {
  20.    
  21.     show(arr, 10);
  22.    
  23.     bubble_sorting(arr, 10);
  24.    
  25. return 0;  
  26. }
  27.  
  28. //                               Сортировка пузырьком
  29. /////////////////////////////////////////////////////                                            
  30. void bubble_sorting(int *a,                        //                                Передаёте адрес элемента массива,
  31.                                                    //              с которого начинаете упорядочивание по возрастанию.
  32.                     int size)                      //       И передаёте кол-во элементов, которые будут отсортированы.                                                    
  33. {  
  34.        
  35.      int    i,                //  Счётчик в цикле  //
  36.          Flag;              //  флаг перестановки  //
  37.    
  38.      do { Flag = 0;
  39.          
  40.           for(i = 0; i < size - 1; i++)
  41.           {
  42.              if(a[i] > a[i+1])
  43.              {
  44.                 swap(a[i], a[i+1]);
  45.              
  46.                 show(arr, 10);                     //                                       Эта строка необязательна
  47.                                                    //                         Нужна для отслеживания хода сортировки  
  48.                 Flag = 1;                          //                     Была перестановка. Значит цикл продолжится  
  49.              }
  50.           }        
  51.           printf("\n");
  52.          
  53.      } while(Flag == 1);                           //                          Если (Flag == 1), то цикл повторяется
  54. }
  55.  
  56. //                Показать на экране элементы массива
  57. /////////////////////////////////////////////////////                            
  58. void show(int *a, int size)                        //
  59. {
  60.      int i = 0;
  61.    
  62.      for(; i < size; i++) printf("%2d, ", a[i]);
  63.      
  64.      printf("\n");
  65. }
  66.  
  67.  
  68. //           Меняет местами содержимое двух переменных
  69. //////////////////////////////////////////////////////                      
  70. void swap(int &a, int &b)                           //
  71. {
  72.    
  73.      int buf = a;
  74.      a = b;
  75.      b = buf;
  76. }
  77.  
  78.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement