Advertisement
dmkozyrev

bubble_sort

Apr 9th, 2015
187
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.26 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdlib>
  3. #include <ctime>
  4.  
  5. void bubble_sort(int* start, int* current, int* finish);
  6. void array_mas(int* start, int* finish , int a, int b);
  7. void print_mas(int* start, int* finish);
  8.  
  9. int main(){
  10.     const int N = 10;
  11.     int mas[N];
  12.     srand(time(0));
  13.     array_mas(mas, mas+N, -10, 10);
  14.     print_mas(mas, mas+N);
  15.     bubble_sort(mas, mas+1, mas+N);
  16.     print_mas(mas, mas+N); 
  17. }
  18.  
  19. void bubble_sort(int* start, int* current, int* finish){
  20. //Сортирует массив методом пузырька
  21.     if ( start != finish )
  22.         if ( current != finish ){
  23.             if ( *start > *current ){
  24.                 const int temp = *start;
  25.                 *start = *current;
  26.                 *current = temp;
  27.             }
  28.             bubble_sort(start, current + 1, finish);
  29.         } else bubble_sort(start + 1, start + 2, finish);
  30. }
  31.  
  32. void array_mas(int* start, int* finish , int a, int b){
  33. //Заполняет массив случайными целыми числами из отрезка [a..b]
  34.     if ( start != finish ){
  35.         *start = rand()%(b-a+1)+a;
  36.         array_mas(start+1, finish, a, b);
  37.     }
  38. }
  39.  
  40. void print_mas(int* start, int* finish){
  41. //Выводит массив на экран
  42.     if ( start != finish ){
  43.         std::cout << *start << " ";
  44.         print_mas(start+1, finish);
  45.     } else std::cout << std::endl;
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement