Advertisement
Guest User

Untitled

a guest
Nov 21st, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.87 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4. #include <time.h>
  5. #pragma warning(disable:4996)
  6. void bubble_sort(long[], long);
  7. int mains() {
  8.     int array[100], c, d, swap;
  9.     int range;
  10.     srand(time(NULL));
  11.     range = (200 - 1) + 1;
  12.     for (int i = 0; i < 100; ++i)
  13.     {
  14.         array[i] = rand() % range + 1;
  15.     }
  16.     int n = sizeof(array) / sizeof(array[0]);
  17.  
  18.     bubble_sort(array, n);
  19.  
  20.     printf("bubble sort rekurzivni\n");
  21.  
  22.     for (c = 0; c < n; c++)
  23.         printf("%ld\n", array[c]);
  24.     int r = mainss();
  25. }
  26.  
  27. void bubble_sort(long list[], long n)
  28. {
  29.     long c, d, t;
  30.  
  31.     for (c = 0; c < n - 1; c++)
  32.     {
  33.         for (d = 0; d < n - c - 1; d++)
  34.         {
  35.             if (list[d] > list[d + 1])
  36.             {
  37.                 /* Swapping */
  38.  
  39.                 t = list[d];
  40.                 list[d] = list[d + 1];
  41.                 list[d + 1] = t;
  42.             }
  43.         }
  44.     }
  45. }
  46. int main()
  47. {
  48.     int array[100], c, d, swap;
  49.     int range;
  50.     srand(time(NULL));
  51.     range = (200 - 1) + 1;
  52.     for (int i = 0; i < 100; ++i)
  53.     {
  54.         array[i] = rand() % range + 1;
  55.     }
  56.     int n = sizeof(array) / sizeof(array[0]);
  57.  
  58.     for (c = 0; c < n - 1; c++)
  59.     {
  60.         for (d = 0; d < n - c - 1; d++)
  61.         {
  62.             if (array[d] > array[d + 1]) /* For decreasing order use < */
  63.             {
  64.                 swap = array[d];
  65.                 array[d] = array[d + 1];
  66.                 array[d + 1] = swap;
  67.             }
  68.         }
  69.     }
  70.     printf("bubble sort nerekurzvizni:\n");
  71.  
  72.     for (c = 0; c < n; c++)
  73.         printf("%d\n", array[c]);
  74.     int r = mains();
  75. }
  76. int mainss()
  77. {
  78.     int array[100], c, d, position, swap;
  79.     int range;
  80.     srand(time(NULL));
  81.     range = (200 - 1) + 1;
  82.     for (int i = 0; i < 100; ++i)
  83.     {
  84.         array[i] = rand() % range + 1;
  85.     }
  86.     int n = sizeof(array) / sizeof(array[0]);
  87.    
  88.     for (c = 0; c < (n - 1); c++)
  89.     {
  90.         position = c;
  91.  
  92.         for (d = c + 1; d < n; d++)
  93.         {
  94.             if (array[position] > array[d])
  95.                 position = d;
  96.         }
  97.         if (position != c)
  98.         {
  99.             swap = array[c];
  100.             array[c] = array[position];
  101.             array[position] = swap;
  102.         }
  103.     }
  104.  
  105.     printf("select sort nerekurzivní:\n");
  106.  
  107.     for (c = 0; c < n; c++)
  108.         printf("%d\n", array[c]);
  109.  
  110.     int r = mainsss();
  111. }
  112. void swap(int* xp, int* yp)
  113. {
  114.     int temp = *xp;
  115.     *xp = *yp;
  116.     *yp = temp;
  117. }
  118.  
  119. void selectionSort(int arr[], int n)
  120. {
  121.     int i, j, min_idx;
  122.  
  123.  
  124.     for (i = 0; i < n - 1; i++)
  125.     {
  126.         //Nalezení nejmenšího čísla
  127.         min_idx = i;
  128.         for (j = i + 1; j < n; j++)
  129.             if (arr[j] < arr[min_idx])
  130.                 min_idx = j;
  131.  
  132.         // nahrazení nejmenšího prvku s prvním prvkem
  133.         swap(&arr[min_idx], &arr[i]);
  134.     }
  135. }
  136.  
  137. /* Funkce na vytisknutí pole */
  138. void printArray(int arr[], int size)
  139. {
  140.     int i;
  141.     for (i = 0; i < size; i++)
  142.         printf("%d ", arr[i]);
  143.     printf("\n");
  144. }
  145.  
  146. //Hlavní program na test ostatních funkcí
  147. int mainsss()
  148. {
  149.     int range;
  150.     srand(time(NULL));
  151.     range = (200 - 1) + 1;
  152.     int arr[100];
  153.  
  154.     for (int i = 0; i < 100; ++i)
  155.     {
  156.         arr[i] = rand() % range + 1;
  157.     }
  158.     int n = sizeof(arr) / sizeof(arr[0]);
  159.     selectionSort(arr, n);
  160.     printf("select sort rekurzivní: \n");
  161.     printArray(arr, n);
  162.     return 0;
  163. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement