Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    68

    [JAVA] implementazione quicksort sbagliata

    Ciao a tutti, ho un problema con il quicksort; su carta sembra funzionare ma se lo eseguo e dopo stampo l'array, visualizzo l'array nell' ordine di partenza.. Ecco il mio codice:

    codice:
    import java.util.Random;
    
    public class QuickSort{
    	
    	static void qsort(int[] a, int inf, int sup) {
    		if(inf < sup) {
    			Random random = new Random ();
    			int iPivot = inf + random.nextInt((sup-inf) + 1);
    			int x = a[iPivot];
    			int i = inf;
    			int j = sup;
    			do {
    				if(a[i] < x) i++;
    				else if(a[j] > x) j--;
    				else {
    					scambia(a,i,j);
    					i++; j--;
    				}
    			} while(i <= j);
    			qsort(a, inf, j);
    			qsort(a, i, sup);
    		}
    	}
    	
    	
    	public static void scambia (int [] a, int i, int j) {
    		int tmp = a[i];
    		a[i] = a[j];
    		a[j] = tmp;
    	}
    	
    	
    	public static void stampa (int [] a) {
    		for (int i=0; i<a.length; i++)
    			System.out.print(a[i] + ", ");
    	}
    	
    	
    	public static void main(String a[]){
    		int array[] = {5,1,4,2,3};
    		qsort (array, 0, a.length-1);
    		stampa(array);
    	
    	
    	}
    		 
      
    }
    Qualcuno mi sa aiutare?? Thanks!!

  2. #2
    Credo che hai sbagliato quì:
    codice:
    public static void main(String a[]){
    		int array[] = {5,1,4,2,3};
    		qsort (array, 0, a.length-1);
    		stampa(array);
    	
    	
    	}
    devi sostituire la lunghezza dell'array giusto non
    codice:
    qsort (array, 0, a.length-1);
    ma
    codice:
    qsort (array, 0, array.length-1);
    Nel tuo caso gli passi come lunghezza sempre 0-1 quindi non ti entra mai nell'if

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.