Differenza insiemistica fra array in java

di il
4 risposte

Differenza insiemistica fra array in java

Buona sera ragazzi, è tutto il pomeriggio che provo a far funzionare questo codice e sto diventando pazzo,

è un esercizio scolastico davvero semplice ma io non riesco... ecco quello che sono riuscito a fare:

// prende come parametri due array di double, e restituisce un nuovo array di double 
// corrispondente all’insieme ottenuto facendo la differenza insiemistica tra l’insieme 
// rappresentato da a e quello rappresentato da b. 
// Il metodo deve avere tempo di esecuzione nel caso peggiore O(n log n),  
// dove n=a.length+b.length. 
public static double[] differenza(double[] a, double[] b) {

int k = 0;
double[] c = new double[a.length - b.length];
for (int i = 0; i < a.length; i++) {
boolean trovato = false;
for (int j = 0; j < b.length; j++) {
if (a != b[j] && !trovato) {
c[k++] = a;
trovato = true;
}

}

}

return c;

}

4 Risposte

  • Re: Differenza insiemistica fra array in java

    Ok ho risolto, ho creato un metodo di supporto:
    // prende come parametro un array di double ed un double n,
    // e restituisce true se n 
    // appartiene all’insieme rappresentato da a, false altrimenti. 

    public static boolean appartiene(double[] a, double n) {
    for (int i = 0; i < a.length; i++) {
    if (a == n)
    return true;
    }
    return false;
    }

    public static double[] differenza(double[] a, double[] b) {

    int k = 0;
    double[] c = new double[a.length - b.length];
    for (int i = 0; i < a.length; i++) {
    if (!appartiene(b, a)) {
    c[k++] = a;
    }
    }

    return c;

    }
  • Re: Differenza insiemistica fra array in java

    Ps. dato che sono nuovo ho letto il regolamento, scusate l'ignoranza ma non trovo il pulsante CODE.
  • Re: Differenza insiemistica fra array in java

    Devi utilizzare l'editor completo & Anteprima
  • Re: Differenza insiemistica fra array in java

    Quel codice è concettualmente sbagliato (e l'errore concettuale te lo porti dietro fin dal tuo primo post).
    Suggerimento: prova ad invocarlo usando questi due array
    
    double[] primo = {1.0, 2.0, 3.0};
    double[] secondo = {4.0, 5.0};
    
    double[] diff = differenza(primo, secondo);
    

    Ciao.
Devi accedere o registrarti per scrivere nel forum
4 risposte