Advertisement
Guest User

Untitled

a guest
Jan 17th, 2017
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 2.47 KB | None | 0 0
  1. #include <stdio.h>
  2. #define MAX 20
  3.  
  4. /*
  5.  
  6. 4 2 7 9 14 15 5 0 1 8 17 19 20 22 23 i=dim-l
  7.  
  8. ** l'algoritmo del bubble_sort confronta il primo numero con il secondo,
  9.    l'elmento a sinsitra conl'elemento a destra, se l'elmento a destra e maggiore vengono
  10.    scambiati di posto questo il ragionamento che fa l'algoritmoquindi il secondo ciclo for
  11.    quella della j scorre tutto il vettore fino a dim-1 effettuando tot scambi finche non
  12.    trovera piu scambi da effettuare **
  13.  
  14. FI: 2 4 7 9 14 15 5 0 1 8 17 19 20 22 (23)  i= dim-2
  15.  
  16. F2: 2 4 7 9 14 5 0 1 8 15 17 19 20 (22) 23  i=dim-3
  17.  
  18. F3: 2 4 7 9 5 0 1 8 14  15  17 19 (20)  22  23  i=dim-4
  19.  
  20. F4: 2 4 7 5 0 1 8 9 14 15   17 (19) 20  22  23  i=dim-5
  21.  
  22. F5: 2 4 5 0 1 7 8 9 14 15   (17) 19 20  22  23  i=dim-6
  23.  
  24. F6: 2 4 0 1 5 7 8 9 14 (15) 17 19   20  22  23  i=dim-7
  25.  
  26. F7: 2 0 1 4 5 7 8 9 (14) 15 17 19 20 22 23  i=dim-8
  27.  
  28. F8: 0 1 2 4 5 7 8 (9) 14 15 17 19 20 22 23  i=dim-9
  29.  
  30. F9: 0 1 2 4 5 7 8 9 14 15 17 19 20 22 23
  31.  
  32. */
  33.  
  34. /* PROTOTIPO DI FUNZIONE */
  35.  
  36. int lettura(int vettore[]);
  37.  
  38. /* questo che vediamo di sotto e il prototipo del bubble_sort
  39.    che e un algoritmo di riordinamento che opera su vettore di interi
  40. */
  41.  
  42. void bubble_sort(int vett[], int dim);
  43.  
  44. int main()
  45. {
  46.  
  47.     int v1[MAX], dim, i;
  48.  
  49.     dim=lettura(v1);
  50.  
  51.     /* STAMPA IL VETTORE */
  52.     /* cioe i=dim-1 */
  53.  
  54.     printf("\nVettore:\n");
  55.     for(i=0; i<dim; i++)
  56.     {
  57.         printf("%d ", v1[i]);
  58.     }
  59.  
  60.     /* all'interno del main richiamiamo il bubble_sort */
  61.  
  62.     bubble_sort(v1, dim);
  63.  
  64.     printf("\nVettore Ordinato:\n");
  65.  
  66.     for(i=0; i<dim; i++)
  67.     {
  68.         printf("%d ", v1[i]);
  69.     }
  70.  
  71.     return 0;
  72.  
  73. }
  74.  
  75. /* DEFINIZIONE DI FUNZIONE  */
  76.  
  77. /* FUNZIONE DI LETTURA */
  78.  
  79. int lettura(int vettore[])
  80. {
  81.  
  82.     int i=0;
  83.     FILE *fp;
  84.  
  85.     fp=fopen("numeri.txt", "r");
  86.  
  87.     while(!feof(fp))
  88.     {
  89.         fscanf(fp, "%d", &vettore[i]);
  90.         i++;
  91.     }
  92.     fclose(fp);
  93.  
  94.     return i; /* ritorniamo i che e il numero di elementi letti
  95.     inserendola nella dimensione dim all'interno del main con ** dim=lettura(v1); */
  96.  
  97. }
  98.  
  99. void bubble_sort(int vett[], int dim)
  100. {
  101.     int i, j, temp;
  102.  
  103.     for(i=dim-1; i>0; i--)
  104.     {
  105.         for(j=0; j<i; j++)
  106.         {
  107.             /** scambiando > con < otterremo un ordinamento in maniera decrescente cioe dal piu grande al piu piccolo **/
  108.  
  109.             if(vett[j]>vett[j+1])
  110.             {
  111.             temp=vett[j];
  112.             vett[j]=vett[j+1];
  113.             vett[j+1]=temp;
  114.             }
  115.         }
  116.     }
  117. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement