Dubbio su una return del metodo bubble sort

valesyle92
buongiorno a tutti , scusate del disturbo ! Ma ho un dubbio su l'ultima return di questo metodo bubble sort ! Se qualcuno è cosi gentile da aiutarmi !! grazieee



         public boolean ordinati_bub( ) { // metodo di ordinamento chiamata 'bubble sort'

       for( int i = lun - 1 ; i > 0 ; i-- ) {

         boolean aPosto = true;   
         
         for( int j = 0 ; j < i ; j++ )

           if ( vettore[ j ] > vettore[ j + 1 ] ) { scambia( j, j + 1 ) ; aPosto = false ; }
         
         if ( aPosto ) return (i == lun-1); // ci dice se il vettore era a posto da prima         
       }
       return lun < 2;// Come mai deve restituire  lun < 2 ?? questo non capisco 
                 

Risposte
Rggb1
'lun < 2' vale vero se lun vale uno (un solo elemento) o zero (nessun elemento); non prendiamo in considerazione la possibilità che sia negativo: non ci interessa, non avrebbe senso e oltretutto non causerebbe nemmeno errore.

Ora, un vettore di un solo elemento o di zero elementi, direi, è sempre ordinato. Giusto? ;)

valesyle92
oh grazie millee! molto gentile!

valesyle92
ah ma quella seconda if ? aPosto che valore ha falso o vero? se ha valore vero ossia Aposto= true allora viene eseguita la return giusto ? non ho ben capito questa seconda if , secondo me se aPosto è vero allora si restituisce vero ma non sono sicura

ramy1989
Ti do un consiglio, a parte che il codice non è indentato bene, è un metodo veramente contorto.
Prenditi lo pseudocodice del bubblesort e prova a implementarlo te di persona, altrimenti impari poco.

valesyle92
adesso ho capito ho rifatto il tutto. grazie ciao!

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.