Advertisement
buonaseva_fatelo

selection_sort

May 7th, 2024
628
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.40 KB | None | 0 0
  1. /*****************************************************************/
  2. /* CON GLI INT (int array[]) */
  3. /*****************************************************************/
  4. void scambia(int array[], int first, int last){
  5.     int temp = array[first];
  6.     array[first] = array[last];
  7.     array[last] = temp;
  8. }
  9.  
  10. void stampa(int array[], int length){
  11.     for (int index=0; index < length; ++index)
  12.     cout << array[index] << ' ';
  13. }
  14.  
  15. void selection_sort(int array[], int length){
  16.     // Seleziona la posizione in cui porre l'elemento ordinato (indexA)
  17.     for (int indexA = 0; indexA < length - 1; indexA++)
  18.     {
  19.         // Dichiara una var. temp. "smallestIndex"
  20.         // Momentaneamente assegnagli l'indice di indexA... prendilo per buono
  21.         int smallestIndex = indexA;
  22.  
  23.         // Cerca l'elemento più piccolo nel sotto-array disordinato a dx (posizione indexB)
  24.         for (int indexB = indexA +1 ; indexB < length; indexB++)
  25.         {
  26.             // Se abbiamo trovato un elemento più piccolo...
  27.             if (array[indexB] < array[smallestIndex])
  28.                 // ...salvati il suo indice
  29.                 smallestIndex = indexB;
  30.         }
  31.         //Finito di scansionare l'array disordinato, scambia i 2 numeri
  32.         scambia(array, indexA, smallestIndex);
  33.     }
  34. }
  35.  
  36.  
  37. /*****************************************************************/
  38. /* CON LE STRINGHE DI CARATTERI CPP-STYLE (string array[]) */
  39. /*****************************************************************/
  40. void scambia(string array[], int first, int last){
  41.     string temp = array[first];
  42.     array[first] = array[last];
  43.     array[last] = temp;
  44. }
  45.  
  46. void stampa(string array[], int length){
  47.     for (int index=0; index < length; ++index)
  48.     cout << array[index] << ' ';
  49. }
  50.  
  51. void selection_sort(string array[], int length){
  52.     // Seleziona la posizione in cui porre l'elemento ordinato (indexA)
  53.     for (int indexA = 0; indexA < length - 1; indexA++)
  54.     {
  55.         // Dichiara una var. temp. "smallestIndex"
  56.         // Momentaneamente assegnagli l'indice di indexA... prendilo per buono
  57.         int smallestIndex = indexA;
  58.  
  59.         // Cerca la stringa che viene prima nel sotto-array disordinato a dx (posizione indexB)
  60.         for (int indexB = indexA +1 ; indexB < length; indexB++)
  61.         {
  62.             // Se l'abbiamo trovata...
  63.             if (array[indexB] < array[smallestIndex])
  64.                 // ...salvati il suo indice
  65.                 smallestIndex = indexB;
  66.         }
  67.         //Finito di scansionare l'array disordinato, scambia le 2 stringhe
  68.         scambia(array, indexA, smallestIndex);
  69.     }
  70. }
  71.  
  72.  
  73.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement