DesmoColo
22-09-2004, 15:49
Devo implementare un algoritmo per fare una ricerca dentro un array di stringhe.
Ho un array di stringhe arrayProv contente 8314 elementi.
L'algoritmo confronta l'elemento i con gli elementi di un arraySingle, di uguale dimensione per assicurarsi che sia abbastanza grande da contenere tutti gli elementi da inserire e completamente vuuoto all'inizio della ricerca.
Se arrayProv[i] non è contenuto in ArraySingle, allora i viene copiato nella prima posizione libera di arraySingle, incrementa il contatore ContaSingle e ripete per il successivo i+1, altrimenti non succede nulla.
Spero di essere stato abbastanza chiaro nel presentare il problema.
Ho implementato il seguente algoritmo, ma non capisco dove sbaglio, mi potete aiutare?
/*arrayProv è già stato inizializzato precedentemente */
String[] arraySingle = new String[8314];
int contaSingle = 0;
for(int i = 0; i < arrayProv.length; i++){
for(int j = 0; j <= i; j++ ){
if(!(arrayProv[i]).equals(arraySingle[j])){
arraySingle[j] = arrayProv[i];
contaSingle++;
break;
}
}//end intern for
}//end extern for
System.out.println(contaSingle);
}
Ho un array di stringhe arrayProv contente 8314 elementi.
L'algoritmo confronta l'elemento i con gli elementi di un arraySingle, di uguale dimensione per assicurarsi che sia abbastanza grande da contenere tutti gli elementi da inserire e completamente vuuoto all'inizio della ricerca.
Se arrayProv[i] non è contenuto in ArraySingle, allora i viene copiato nella prima posizione libera di arraySingle, incrementa il contatore ContaSingle e ripete per il successivo i+1, altrimenti non succede nulla.
Spero di essere stato abbastanza chiaro nel presentare il problema.
Ho implementato il seguente algoritmo, ma non capisco dove sbaglio, mi potete aiutare?
/*arrayProv è già stato inizializzato precedentemente */
String[] arraySingle = new String[8314];
int contaSingle = 0;
for(int i = 0; i < arrayProv.length; i++){
for(int j = 0; j <= i; j++ ){
if(!(arrayProv[i]).equals(arraySingle[j])){
arraySingle[j] = arrayProv[i];
contaSingle++;
break;
}
}//end intern for
}//end extern for
System.out.println(contaSingle);
}