Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [java] Metodo del QuickSort

    Salve a tutti
    Ho un problema non riesco a capire cosa fanno questi due metodi dell'algoritmo del quicksort
    Chiedo aiuto.
    Saluti
    Posto il codice
    codice:
    public class QuickSort 
    { 
       public static void scambia(int[] v, int pos1, int pos2) 
       { 
         int app = v[pos1]; 
         v[pos1] = v[pos2]; 
         v[pos2] = app; 
        } 
         public static int partiziona(int[] v, int from, int to) 
         { 
           int sceltaSeparatore =(from+to)/2; 
           scambia(v, sceltaSeparatore, from); 
           int separatore = v[from]; 
           int i = from+1; 
           int j = to; 
           while(i<j) 
           { 
             while(i<j && v[i]<=separatore) 
               i++; 
             while(i<j && v[j]>=separatore) 
               j--; 
             if(i<j) 
              scambia(v, i, j); 
           } 
             if(v[i]>separatore) 
              i--; 
             scambia(v, i, from); 
             return i; 
        } 
          public static void quickSort(int[] v, int from, int to) 
          { 
            if(from>=to) 
              return; 
            else 
            { 
               int separazione=partiziona(v, from, to); 
               quickSort(v, from, separazione-1); 
               quickSort(v, separazione+1, to); 
             } 
           } 
             public static void sort(int[] v) 
             { 
               quickSort(v, 0, v.length-1); 
             }  
               public static void printlnArray(int[] v) 
               { 
                 for(int i=0; i<v.length; i++) 
                 { 
                   System.out.print(v[i]); 
                   System.out.print("\t"); 
                  } 
                    System.out.println(); 
                } 
                  public static void main(String[] args) 
                  { 
                    int[] vettore={10, 11, 5, 66, 3, 22, 9, 0, 45, 56, 51, 33};
                    System.out.println("prima dell'ordinamento");        
                     printlnArray(vettore); 
                     sort(vettore); 
                     System.out.println("dopo l'ordinamento"); 
                     printlnArray(vettore); 
                     System.exit(0); 
                   } 
    }
    Il codice funzione ma io ho un grosso problema premetto che conosco il funzionamento del quicksort ma non riesco a capire cosa fa il metodo partiziona.
    Aspetto una vostra risposta grazie mille

  2. #2
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3

    Semi risolto ma va bene

    Grazie mille satifal
    ciao

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 © 2025 vBulletin Solutions, Inc. All rights reserved.