Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2000
    Messaggi
    1,175

    [C] selection sort (da iterat. a ricors.)

    Ho questo algoritmo di selection sort iterativo... qualcuno potrebbe tradurlo in ricorsivo? grazie
    codice:
    void i_sel_sort(float *A, int n){
    int i, j, p;
    float min;
    
    for (i=0; i<n-1; i++) {
        min = A[i];
        p = i;
            for (j=i+1; j<n; j++){
    			if (A[j]<min){
                    min = A[j];
                    p = j;
                }
            }
            A[p] = A[i];
            A[i] = min;
    	}
    }

  2. #2
    dovrebbe andare così

    codice:
    void r_sel_sort(float *A, int cur, int n)
     {
      int i,p=cur;
      float min = A[cur];
      if(cur<n)
       { 
         
         for(i = cur; i<n; i++) /* trovo posizione minimo su sottovettore */
           {
             if(A[i] < min)
              {
                 min = A[i];
                 p = i;
              }    
           }    
           
         /* inverto posizione di corrente e minimo */
         A[p] = A[cur];
         A[cur] = min;
         
         /* chiamo funzione su sottovettore successivo */
         r_sel_sort(A,cur+1,n); 
       }    
     }
    il secondo parametro è l'elemento dacui iniziare l'ordinamento.. quindi nella chiamata del main gli passerai 0...

    pe ril resto è uguale a quello di sopra.. per ogni elemento cerca il minimo e lo mette nella posizione corrente.. solo che invece di farlo con un ciclo lo fa con chiamate ricorsive

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.