Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    4

    ricerca numeri in un vettore

    ciao a tutti
    io ho un piccolo problemino...devo verificare che in un vettore siano presenti dei numeri contenuti in un'altro vettore. il codice che ho scritto è:
    int f=0;
    for (int i=0;i<7;i++)
    for(int j=0;j<v2.length();j++)
    if(v1[i]==v2[j])
    {
    f++;
    break;
    }
    if(f==7)
    return true;
    else
    return false;
    il metodo restituisce true se i numeri di v1 sono presenti in v2 altrimenti restituisce false. questo metodo secondo me è corretto ma secondo un correttore del mio prof non va bene . non so in che altro modo fare.
    grazie

  2. #2

    Re: ricerca numeri in un vettore

    Originariamente inviato da patyna
    ciao a tutti
    io ho un piccolo problemino...devo verificare che in un vettore siano presenti dei numeri contenuti in un'altro vettore. il codice che ho scritto è:
    codice:
     int f=0;
    		for (int i=0;i<7;i++)
    		 for(int j=0;j<v2.length();j++)
              if(v1[i]==v2[j])
    		  {
               f++;
    		   break;
              }
    		if(f==7)
            return true;
    		else
    		return false;
    il metodo restituisce true se i numeri di v1 sono presenti in v2 altrimenti restituisce false. questo metodo secondo me è corretto ma secondo un correttore del mio prof non va bene . non so in che altro modo fare.
    grazie
    In effetti non va bene.
    Leggendo la specifica credo che l'ordine dei due vettori va trascurato, quindi l'algoritmo deve essere più elaborato ma soprattutto più generico.

  3. #3
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: ricerca numeri in un vettore

    Originariamente inviato da patyna
    devo verificare che in un vettore siano presenti dei numeri contenuti in un'altro vettore.

    il metodo restituisce true se i numeri di v1 sono presenti in v2 altrimenti restituisce false. questo metodo secondo me è corretto ma secondo un correttore del mio prof non va bene . non so in che altro modo fare.
    Primo: scrivi il codice bene e con una corretta indentazione. E qui sul forum tra i tag CODE.

    Secondo: se deve fornire true se tutti i valori in v1 sono presenti in v2 in qualunque ordine, a me pare tecnicamente corretto. Anche se per renderlo più leggibile avresti dovuto mettere le { } anche per i for.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  4. #4

    Re: Re: ricerca numeri in un vettore

    Originariamente inviato da andbin
    a me pare tecnicamente corretto.
    Non lo è.

    Analizziamo il seguente caso:
    i due vettori
    A = {1, 2, 3};
    B = {3, 3, 3};
    fissiamo che c è il contatore usato per contare i numeri di A contenuti in B;

    Nel momento in cui i = 2 (l'indice per scorrrere gli elementi in A), c viene incrementato ben 3 volte, e quindi il controllo finale
    if ( A.length == c )
    restituisce erroneamente true, in quanto il vettore B contiene solo l'elemento 3 di A.

  5. #5
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Re: Re: ricerca numeri in un vettore

    Originariamente inviato da VincenzoTheBest
    Nel momento in cui i = 2 (l'indice per scorrrere gli elementi in A), c viene incrementato ben 3 volte
    No, c'è il break.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #6

    Re: Re: Re: Re: ricerca numeri in un vettore

    Originariamente inviato da andbin
    No, c'è il break.
    Già è vero, allora è corretto.

  7. #7
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    4
    grazie per aver risposto. ma c'è un'altro modo per eseguire questa operazione?

  8. #8
    Originariamente inviato da patyna
    grazie per aver risposto. ma c'è un'altro modo per eseguire questa operazione?
    Si, come nella maggior parte dei casi per 1 problema si possono riscontrare n soluzioni.

  9. #9
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    4
    me ne potresti accennare una? io sono completamente in palla....

  10. #10
    Originariamente inviato da patyna
    me ne potresti accennare una? io sono completamente in palla....
    Certo, anche se la tua secondo me è la migliore in termini di risorse e prestazioni. Quindi al posto tuo non cercherei alternative.

    Una possibile soluzione alternativa potrebbe consistere nell'uso di un vettore di valori booleani, di pari lunghezza al vettore A, inizializzato con tutti i valori pari a false, nel quale l'i-esima cella corrisponde con la k-esima del vettore A (vettore di cui vuoi riscontrare la presenza dei suoi termini nel vettore B);
    dunque nel ciclo più interno nel momento in cui riscontri una uguaglianza vai a settare la cella di indice i su true.

    Infine il metodo restituisce true se il vettore boolean contiene solo ed esclusivamente valori true, altrimenti false.

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.