Advertisement
fcamuso

Algoritmi lezione 12 - Selection Sort

Feb 23rd, 2024
1,025
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 1.52 KB | None | 0 0
  1. #include <iostream>
  2. #include <chrono>
  3. #include <ctime>
  4. #include <random>
  5.  
  6. using namespace std;
  7. #include "../../min_max/utility_vettori.h"
  8.  
  9.  
  10. using namespace std;
  11.  
  12. void selection_sort_stringhe(string v[], int numero_elementi)
  13. {
  14.  
  15.   // dal primo al penultimo elemento ...
  16.   for(int i = 0; i < numero_elementi - 1; ++i)
  17.   {
  18.     int posizione_minimo = i;
  19.  
  20.     //cerca il minimo negli elementi che stanno
  21.     //a destra della posizione da sistemare
  22.     for(int j = i + 1; j < numero_elementi; ++j)
  23.       if (v[j] < v[posizione_minimo])
  24.         posizione_minimo = j;
  25.  
  26.     //piazza il minimo al suo posto
  27.     swap(v[i], v[posizione_minimo]);
  28.   }
  29. }
  30.  
  31. void selection_sort_interi(unsigned long v[], int numero_elementi)
  32. {
  33.  
  34.   // dal primo al penultimo elemento ...
  35.   for(int i = 0; i < numero_elementi - 1; ++i)
  36.   {
  37.     int posizione_minimo = i;
  38.  
  39.     //cerca il minimo negli elementi che stanno
  40.     //a destra della posizione da sistemare
  41.     for(int j = i + 1; j < numero_elementi; ++j)
  42.       if (v[j] < v[posizione_minimo])
  43.         posizione_minimo = j;
  44.  
  45.     //piazza il minimo al suo posto
  46.     swap(v[i], v[posizione_minimo]);
  47.   }
  48. }
  49.  
  50. const int QUANTI_ELEMENTI = 30000;
  51. const int LUNGHEZZA = 1000;
  52. unsigned long v[QUANTI_ELEMENTI];
  53.  
  54. int main()
  55. {
  56.   carica_vettore_interi(v, QUANTI_ELEMENTI);
  57.  
  58.   Cronometro(Stato::START);
  59.  
  60.   selection_sort_interi(v, QUANTI_ELEMENTI);
  61.  
  62.   cout << "Tempo impiegato: " << Cronometro(Stato::STOP) << endl;
  63.  
  64.  
  65.   //stampa_vettore_stringhe(v, QUANTI_ELEMENTI);
  66.  
  67.  
  68.     return 0;
  69. }
  70.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement