ITAsimo456

Untitled

Mar 23rd, 2020
198
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.13 KB | None | 0 0
  1. // Bubble Sort
  2.  
  3. bool scambio_avvenuto;
  4.  
  5. do {
  6.     scambio_avvenuto = false;
  7.  
  8.     for (int i = 0; i < N - 1; i++) {
  9.         if (arr[i] > arr[i + 1]) {
  10.             scambia(arr[i], arr[i + 1]);
  11.             scambio_avvenuto = true;
  12.         }
  13.     }
  14. } while(scambio_avvenuto);
  15.  
  16.  
  17.  
  18. /*
  19. Analizza:
  20.  
  21. Funziona?
  22. Come viene ordinato l'array?
  23. */
  24.  
  25.  
  26. bool scambio_avvenuto;
  27.  
  28. do {
  29.     scambio_avvenuto = false;
  30.  
  31.     for (int i = 0; i < N - 1; i++) {
  32.         if (arr[i] > arr[i + 1]) {
  33.             scambia(arr[i], arr[i + 1]);
  34.             scambio_avvenuto = true;
  35.         }
  36.     }
  37. } while(scambio_avvenuto);
  38.  
  39.  
  40. //~~~~~~~~~~~//
  41.  
  42.  
  43. bool scambio_avvenuto;
  44.  
  45. do {
  46.     scambio_avvenuto = false;
  47.  
  48.     for (int i = 0; i < N - 1; i++) {
  49.         if (arr[i] < arr[i + 1]) {
  50.             scambia(arr[i], arr[i + 1]);
  51.             scambio_avvenuto = true;
  52.         }
  53.     }
  54. } while(scambio_avvenuto);
  55.  
  56.  
  57. //~~~~~~~~~~~//
  58.  
  59.  
  60. bool scambio_avvenuto;
  61.  
  62. do {
  63.     scambio_avvenuto = false;
  64.  
  65.     for (int i = n - 1; i > 0; i--) {
  66.         if (arr[i - 1] > arr[i]) {
  67.             scambia(arr[i - 1], arr[i]);
  68.             scambio_avvenuto = true;
  69.         }
  70.     }
  71. } while(scambio_avvenuto);
  72.  
  73.  
  74. //~~~~~~~~~~~//
  75.  
  76.  
  77. bool scambio_avvenuto;
  78.  
  79. do {
  80.     for (int i = 0; i < N - 1; i++) {
  81.         if (arr[i] > arr[i + 1]) {
  82.             scambia(arr[i], arr[i + 1]);
  83.             scambio_avvenuto = true;
  84.         }
  85.     }
  86. } while(scambio_avvenuto);
  87.  
  88.  
  89. //~~~~~~~~~~~//
  90.  
  91.  
  92. bool scambio_avvenuto;
  93.  
  94. do {
  95.     scambio_avvenuto = false;
  96.  
  97.     for (int i = 0; i < N - 1; i++) {
  98.         if (arr[i] > arr[i + 1]) {
  99.             scambia(arr[i], arr[i + 1]);
  100.             scambio_avvenuto = true;
  101.         }
  102.     }
  103. } while(!scambio_avvenuto);
  104.  
  105.  
  106. //~~~~~~~~~~~//
  107.  
  108.  
  109. bool scambio_avvenuto;
  110.  
  111. while(scambio_avvenuto) {
  112.     scambio_avvenuto = false;
  113.  
  114.     for (int i = 0; i < N - 1; i++) {
  115.         if (arr[i] > arr[i + 1]) {
  116.             scambia(arr[i], arr[i + 1]);
  117.             scambio_avvenuto = true;
  118.         }
  119.     }
  120. }
  121.  
  122.  
  123. //~~~~~~~~~~~//
  124.  
  125.  
  126. bool scambio_avvenuto = true;
  127.  
  128. while(scambio_avvenuto) {
  129.     scambio_avvenuto = false;
  130.  
  131.     for (int i = 0; i < N - 1; i++) {
  132.         if (arr[i] > arr[i + 1]) {
  133.             scambia(arr[i], arr[i + 1]);
  134.             scambio_avvenuto = true;
  135.         }
  136.     }
  137. }
  138.  
  139.  
  140. //~~~~~~~~~~~//
  141.  
  142.  
  143. int ricerca_dicotomica(int ago, int pagliaio[], int n) {
  144.     int sx = 0;
  145.     int dx = n - 1;
  146.  
  147.     while (sx <= dx) {
  148.         int centro = (dx + sx) / 2;
  149.  
  150.         if (ago > pagliaio[centro])
  151.             sx = centro + 1;
  152.         else if (ago < pagliaio[centro])
  153.             dx = centro - 1;
  154.         else
  155.             return centro;
  156.     }
  157.  
  158.     return -1;
  159. }
  160.  
  161.  
  162. //~~~~~~~~~~~//
  163.  
  164.  
  165. // Funzione che stampa i numeri interi fino a 20 a partire da un numero n
  166. void stampa_numeri(int n) {
  167.     if (n <= 20) {
  168.         cout << n;
  169.         stampa_numeri(n + 1);
  170.     }
  171. }
  172.  
  173.  
  174. //~~~~~~~~~~~//
  175.  
  176.  
  177. // Funzione che stampa in ordine crescente tutti i numeri interi tra un numero min e un numero max
  178. void stampa_numeri(int min, int max) {
  179.     if (min <= max) {
  180.         cout << min;
  181.         stampa_numeri(min + 1);
  182.     }
  183. }
  184.  
  185.  
  186. //~~~~~~~~~~~//
  187.  
  188.  
  189. // Funzione che stampa in ordine crescente tutti i numeri interi pari tra un numero min e un numero max
  190. void stampa_numeri_pari(int min, int max) {
  191.     if (min <= max) {
  192.         if (min % 2 == 0)
  193.             cout << min;
  194.         stampa_numeri(min + 1);
  195.     }
  196. }
  197.  
  198.  
  199. //~~~~~~~~~~~//
  200.  
  201.  
  202. // Ricorsione
  203. long potenza(int base, int esponente) {
  204.     if (esponente <= 0)
  205.         return 1;
  206.    
  207.     return base * potenza(base, esponente - 1);
  208. }
  209.  
  210.  
  211. /*
  212. Ci sono n vasi, posti uno dopo l'altro e numerati in questo modo:
  213. 0, 1, 2, 3, ..., n-1, n
  214.  
  215. Dentro ogni vaso c'e un certo numero di palline, secondo questo criterio:
  216. n Palline per i vasi di indice pari
  217. 1 Pallina per i vasi di indice dispari
  218. Nel vaso 6 non ci sono palline.
  219. */
  220. int conta_palline(int n){
  221.     if (n == 0)
  222.         return 0;
  223.  
  224.     int palline;
  225.  
  226.     if (palline == 6)
  227.         palline = 0;
  228.     else if (n % 2)
  229.         palline = 1;
  230.     else
  231.         palline = n;
  232.  
  233.    
  234.    
  235.     return palline + conta_palline()
  236.  
  237. }
Advertisement
Add Comment
Please, Sign In to add comment