Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it L'avatar di Il Pazzo
    Registrato dal
    Jul 2004
    Messaggi
    1,071

    [C] QuickSort in overflow prima di iniziare

    codice:
    int partiziona(int v[], int left, int right){
    		int x = v[(left + right) / 2];
    		
    		while((v[left] < x) && (left < right)) left++;
    		while((v[right] > x)&& (right > left)) right--;
    		
    		while(left < right){
    				int tmp = v[left];
    				v[left] = v[right];
    				v[right] = tmp;
    
    				left++; right--;
    
    				while(v[left] < x) left++;
    				while(v[right] > x) right--;
    		}
    
    		return left;
    }
    
    int* quick(int v[], int left, int right){
    	if(left < right){
    		int mezzo = partiziona(v, left, right);
    		
    		quick(v, left, mezzo);
    		quick(v, mezzo + 1, right);
    	}
    
    	return v;	
    }
    Se faccio partire normalmente il programma semplicememnte mi dice "Premere un tasto per continuare"...
    Debbuggando mi dice "Eccezzione non gestita.... Stack in overflow"... ed esattamente me lo dice appena entro dentro la funzione quick....

    Dov è che è sbagliato il mio codice????


    grazie a tutti

  2. #2
    Utente di HTML.it
    Registrato dal
    Jun 2006
    Messaggi
    569
    Ciao,

    Devi semplicemente dichiarare quick come void quick(...).

    Non hai bisogno di ritornare il vettore v.

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