Visualizzazione dei risultati da 1 a 7 su 7
  1. #1

    Algoritmo Bouble Sort (Java)

    Mi servirebbe un piccolo aiuto nell'implementare l'algoritmo bouble Sort. Questo mi serve per ordinare alcuni oggetti di tipo String in un Vector.

    Io ho scritto questo codice, ma non mi da il risultato desiderato.
    --------------------------------------------------------------------
    CODICE :

    private Vector riordina(Vector vettore){
    boolean scambio = true;

    int indice = 0;
    int lunghezza = vettore.size();

    String corrente, prossimo;

    while(lunghezza != 0 && scambio) {
    scambio = false;
    indice = 0;

    while(indice != lunghezza - 1) {
    corrente = (String) vettore.elementAt(indice);
    prossimo = (String) vettore.elementAt(indice + 1);

    if(corrente.compareTo(prossimo) > 0) {
    scambio = true;
    vettore = scambia(vettore, indice, indice + 1);
    }
    indice++;
    }
    lunghezza--;
    }

    return vettore;

    }
    ---------------------------- FINE CODICE -------------------------
    Spero che qualcuno possa aiutarmi. Grazie lo stesso.

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    A parte un piccolo errore, dove stà il tuo problema?

    L'errore consiste nell'aver impostato lunghezza = vettore.size() e non (vettore.size()-1): questo ti porterà sicuramente ad un errore di ArrayIndexOutOfBoundsException per come hai scritto il codice.

    L'algoritmo, a prima vista, mi sembra corretto.

    Solo una cosa: il metodo lo hai erso privato perchè lo usi solo all'interno della classe da altri metodi?

    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    non riesco a capire perchè gli passi una classe, in genere le funzioni matematiche o di questo tipo, si dichiarano come static e gli si passa l'array da ordinare così:


    public static String[] riordina(String array[]) { codice; }

    :bubu: Luca

  4. #4
    Utente di HTML.it L'avatar di ChReAn
    Registrato dal
    Aug 2002
    Messaggi
    486
    Originariamente inviato da Lucked
    non riesco a capire perchè gli passi una classe, in genere le funzioni matematiche o di questo tipo, si dichiarano come static e gli si passa l'array da ordinare così:


    public static String[] riordina(String array[]) { codice; }

    :bubu: Luca
    E perche' mai dovresti dichiararle statiche?
    ChReAn
    -------------------

    Slackware 9.1 powered

  5. #5
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    Non lo so...ma mi piaceva di più cosi

  6. #6
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320
    E che differenza vedi fra un Vector ed un array? Se a lui serve ordinare un Vector (che non è nient'altro che un array con una serie di metodi che lo manipolano), alla funzione passerà un Vector...



    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  7. #7
    Utente di HTML.it
    Registrato dal
    Oct 2003
    Messaggi
    1,258
    :bubu: Si infatti...però non so cosa lui volesse fare, e nel caso non volesse ordinare l'array di un vector, dicevo che era meglio(nel senso di più semplice) usare un metodo statico. :bubu:

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.