Ciao a tutti, sono nuovo nel forum.
Avrei bisogno gentilmente di alcuni consigli per risolvere il seguente problema.
Sto creando una classe main per testare gli algoritmi di ordinamento su array di interi (generati casualmente tramite la classe Random) ordinati, non ordinati, non ordinati con pochi elementi ripetuti e non ordinati con molti elementi ripetuti. Il mio problema sta nel generare gli ultimi due array con pochi e molti elementi ripetuti.
L'idea che mi è venuta in mente è quella di modificare il range. Un esempio potrebbe essere di questo tipo, vi riporto il codice che ho scritto :
int[] aNonOrdPochiRip = new int[n];
fill(aNonOrdPochiRip, n/2);
int[] aNonOrdMoltiRip = new int[n];
fill(aNonOrdMoltiRip, n/4);
con il metodo fill che riempe l'array di interi casuali con probabilità uniforme da 0 fino a range incluso.
private static void fill(int[] a, int range) {
Random generatore = new Random();
for(int i = 0; i < a.length; i++)
a[i] = generatore.nextInt(range+1);
}
Ho fatto inizialmente una piccola prova su array di lunghezza n = 10 ed effettuando la stampa, gli output sono i seguenti :
POCHI ELEMENTI RIPETUTI : 0, 2, 1, 5, 0, 2, 3, 4, 2, 5
MOLTI ELEMENTI RIPETUTI : 1, 1, 0, 1, 1, 1, 2, 0, 0, 1
Grazie anticipatamente per i consigli!![]()

Rispondi quotando

