Dubbio su una return del metodo bubble sort
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
'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?
Ora, un vettore di un solo elemento o di zero elementi, direi, è sempre ordinato. Giusto?

oh grazie millee! molto gentile!
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
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.
Prenditi lo pseudocodice del bubblesort e prova a implementarlo te di persona, altrimenti impari poco.
adesso ho capito ho rifatto il tutto. grazie ciao!