Merge di vettori

di il
4 risposte

Merge di vettori

Ciao a tutti, da pochi giorni sto cercando di imparare qualcosina in Java.
Voglio creare un programma che , dati 2 vettori riempiti con numeri, li ordini in modo crescente e poi li unisca in un vettore unico, il quale sarà sempre in ordine crescente.

Il mio programma funziona , solo che ho usato un metodo abbastanza da n00b, che di Merge ha solo il nome (anche se non voglio farlo con le funzioni di unione apposite).
Qualcuno ha qualche consiglio per abbreviare un po' il mio codice? magari concatenando qualche FOR?

Ecco il codice:
http://pastebin.com/Sb4edG4

Grazie in anticipo

4 Risposte

  • Re: Merge di vettori

    Considera che non ho potuto guardare il tuo codice e sto buttando giù velocemente qualche riga di codice per cui ci può essere qualche errorino
    nel mio script i tuoi due array sono
    vect1
    vect2
    
    int j=0;
    int[] union=new int[vect1.length+vect2.length];
    
    
    for(int i=0, j=0; i<vect1.length; i++, j++)
    	union[j]=vect1[i];
    
    for(int i=0, j=vect1.length+1; i<vect2.length; i++, j++)
    	union[j]=vect2[i];
    
    
    ciao
  • Re: Merge di vettori

    schumy2000 ha scritto:


    considera che non ho potuto guardare il tuo codice e sto buttando giù velocemente qualche riga di codice per cui ci può essere qualche errorino
    nel mio script i tuoi due array sono
    vect1
    vect2
    
    int j=0;
    int[] union=new int[vect1.length+vect2.length];
    
    
    for(int i=0, j=0; i<vect1.length; i++, j++)
    	union[j]=vect1[i];
    
    for(int i=0, j=vect1.length+1; i<vect2.length; i++, j++)
    	union[j]=vect2[i];
    
    
    ciao
    Ciao grazie per la risposta, grossomodo è il tipo di unione che ho realizzato anche io, io mi riferivo comunque al resto del programma in sé, poiché penso di aver usato un algoritmo abbastanza lungo e banale per ordinare i vettori.
  • Re: Merge di vettori

    Voltec ha scritto:


    io mi riferivo comunque al resto del programma in sé, poiché penso di aver usato un algoritmo abbastanza lungo e banale per ordinare i vettori.
    Sì, l'algoritmo che hai usato è abbastanza banale, meno efficiente di altri (pure meno del BubbleSort, mi pare ad occhio) ma comunque tecnicamente funziona.
    Se vuoi qualcosa di più efficiente ti basta cercare info in rete sugli algoritmi "noti", BubbleSort o altri.

    Il punto negativo non è comunque quello, secondo me. Quello che proprio non va nel tuo codice è il modo in cui hai disposto tutto nel main. Hai ripetuto ben 3 volte l'algoritmo di ordinamento e hai sparpagliato variabili in giro (es. i e j sono all'inizio).
    Ti bastava fare un metodo es. 'sort' per l'ordinamento e anche un metodo 'join' (per la unione di 2 array) per rendere il main davvero molto più chiaro, pulito e comprensibile.
    E per avere la descrizione del contenuto di un array, si può usare Arrays.toString (puoi anche farti un metodo di stampa con un classico for, ovviamente).
  • Re: Merge di vettori

    andbin ha scritto:


    Voltec ha scritto:


    io mi riferivo comunque al resto del programma in sé, poiché penso di aver usato un algoritmo abbastanza lungo e banale per ordinare i vettori.
    Sì, l'algoritmo che hai usato è abbastanza banale, meno efficiente di altri (pure meno del BubbleSort, mi pare ad occhio) ma comunque tecnicamente funziona.
    Se vuoi qualcosa di più efficiente ti basta cercare info in rete sugli algoritmi "noti", BubbleSort o altri.

    Il punto negativo non è comunque quello, secondo me. Quello che proprio non va nel tuo codice è il modo in cui hai disposto tutto nel main. Hai ripetuto ben 3 volte l'algoritmo di ordinamento e hai sparpagliato variabili in giro (es. i e j sono all'inizio).
    Ti bastava fare un metodo es. 'sort' per l'ordinamento e anche un metodo 'join' (per la unione di 2 array) per rendere il main davvero molto più chiaro, pulito e comprensibile.
    E per avere la descrizione del contenuto di un array, si può usare Arrays.toString (puoi anche farti un metodo di stampa con un classico for, ovviamente).
    Concordo, purtroppo in Java mi sembrano già un casino la presenza di classi e vari metodi strambi che l'uso appunto di funzioni create da me è stata l'ultima cosa a cui avrei pensato
    Vedrò di darmi da fare !
Devi accedere o registrarti per scrivere nel forum
4 risposte