Visualizzazione dei risultati da 1 a 2 su 2

Discussione: problema ordinamento

  1. #1
    Utente di HTML.it
    Registrato dal
    Oct 2006
    Messaggi
    86

    problema ordinamento

    Ciao a tutti ragazzi devo implementare un algoritmo di quick sort avendo come base di partenza il metodo partition già implementato e il metodo quicksort da completare. Ho implementato il metodo quicksort ma Il problema è che non ho capito come passare a partition il parametro numConfronti, in quanto nel metodo quicksort è dichiarato come un semplice int mentre nel metodo partition è dichiarato come un array !
    codice:
    static int quicksort(int A[], int inf, int sup){
    		int numConfronti;
    		
    		
    		return numConfronti;
    	}

    codice:
    static int quicksort(int A[], int inf, int sup){
    		int numConfronti;
    		if(sup-inf>=1){
    			int pos=partition(A,inf,sup,????);
    			if((pos-inf) < pos-pos+1){
    				quicksort(A,inf,pos-1);
    				quicksort(A,pos+1,sup);
    			
    			}
    			else{
    				quicksort(A,pos+1,sup);
    				quicksort(A,inf,pos-1);
    			}
    				
    		}
    		
    		
    		return numConfronti;
    	}
    codice:
    private static  int partition(int A[], int inf, int sup, int []numConfronti){
    		int i,j;
    		numConfronti[0]=0;
    		i=inf; 
    		j=sup; 
    		int	med=(inf+sup)/2;
    		int x=A[med];
    		int temp=A[inf];
    		A[inf]=A[med];
    		A[med]=temp;
    		while (true) 
    		{
    			numConfronti[0]++;
    			while(i<=sup && A[i]<=x){ i++; 
    				numConfronti[0]++;
    			}
    			numConfronti[0]++;
    			while(A[j]>x) {j--;
    				numConfronti[0]++;
    			}
    			
    			if(i<j) { 
    				temp=A[i];
    				A[i]=A[j];
    				A[j]=temp;
    			}
    			else break;
    		}
    		temp=A[inf];
    		A[inf]=A[j];
    		A[j]=temp;
    		return j;
    
    	}

  2. #2

    Re: problema ordinamento

    Originariamente inviato da veilside
    Ciao a tutti ragazzi devo implementare un algoritmo di quick sort avendo come base di partenza il metodo partition già implementato e il metodo quicksort da completare. Ho implementato il metodo quicksort ma Il problema è che non ho capito come passare a partition il parametro numConfronti, in quanto nel metodo quicksort è dichiarato come un semplice int mentre nel metodo partition è dichiarato come un array !

    Ciao!
    Dato che dell'array numConfronti nel metodo "partition" mi sembra che venga tenuto conto solo della prima posizione, potresti dichiarare un
    codice:
    int[]a = {numConfronti};
    e poi passare <a> come parametro al metodo "partition", non so se sono stato chiaro...
    L'ascensore può scendere su e giù...
    by Prof di Sistemi

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.