Advertisement
MeShootIn

5

Feb 28th, 2018
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.64 KB | None | 0 0
  1. /*
  2. ЛАБОРАТОРНАЯ РАБОТА № 5
  3. ВАРИАНТ 1
  4. ВЫПОЛНИЛ: ДМИТРИЙ МИШУТИН КЭ - 101
  5. */
  6.  
  7. #include <stdio.h>
  8. #include <iostream>
  9. #include <time.h>
  10. #include <stdlib.h>
  11.  
  12. using namespace std;
  13.  
  14. void my_swap(int &a, int &b){
  15.     int tmp = a;
  16.     a = b;
  17.     b = tmp;
  18. }
  19.  
  20. void bubble_sort(int * arr, int N){ // сортировка пузырьком за O(N^2)
  21.     for(int i = 0; i < N - 1; i++){
  22.         for(int j = 0; j < N - i - 1; j++){
  23.             if(arr[j] > arr[j + 1]){
  24.                 my_swap(arr[j], arr[j + 1]);
  25.             }
  26.         }
  27.     }
  28. }
  29.  
  30. void selection_sort(int * arr, int N){ // сортировка простым выбором за O(N^2)
  31.     for(int i = 0; i < N - 1; i++){
  32.         int index_min = i;
  33.         for(int j = i + 1; j < N; j++){
  34.             if(arr[j] < arr[index_min]){
  35.                 index_min = j;
  36.             }
  37.         }
  38.         my_swap(arr[i], arr[index_min]);
  39.     }
  40. }
  41.  
  42. int main(){
  43.     setlocale(0, "");
  44.    
  45.     const int N = 10000;
  46.     int * arr1 = (int *) malloc(N * sizeof(int));
  47.     int * arr2 = (int *) malloc(N * sizeof(int));
  48.    
  49.     srand(time(0));
  50.     for(int i = 0; i < N; i++){
  51.         arr1[i] = rand() % 101;
  52.         arr2[i] = arr1[i];
  53.     }
  54.    
  55.     int t1 = clock();
  56.     bubble_sort(arr1, N);
  57.     printf("Сортировка пузырьком: %lf секунд\n", (double) (clock() - t1) / CLOCKS_PER_SEC);
  58.    
  59.     int t2 = clock();
  60.     selection_sort(arr2, N);
  61.     printf("Сортировка пузырьком: %lf секунд\n", (double) (clock() - t2) / CLOCKS_PER_SEC);
  62.    
  63.     /*for(int i = 0; i < N; i++){
  64.         cout << arr1[i] << " ";
  65.     }
  66.     cout << endl;
  67.    
  68.     for(int i = 0; i < N; i++){
  69.         cout << arr2[i] << " ";
  70.     }
  71.     cout << endl;*/
  72.    
  73.     free(arr1);
  74.     free(arr2);
  75.    
  76.     system("PAUSE");
  77.     return 0;
  78. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement