Maison > Questions et réponses > le corps du texte
比如说, 我希望验证一个排序算法是否正确. 我不想自己去写测试数据, 有没有什么库能够自动生成包含数据的数组或其它的容器类.
比如能够自动生成一个长度为100的有序int数组等等.
巴扎黑2017-04-18 10:50:41
Mots clés, shuffle
public static List<Integer> generateRandomArray(int len)
{
if(len <= 0)
{
throw new IllegalArgumentException(len + " can not be negitive.");
}
List<Integer> arr = new ArrayList<>(len);
for(int i = 0; i < len; i++)
{
arr.add(i);
}
Collections.shuffle(arr);
return arr;
}
PHP中文网2017-04-18 10:50:41
Je n'ai jamais entendu parler d'une telle bibliothèque - mais pour ce genre de méthode simple, je suggère de "faire vous-même et d'avoir suffisamment de nourriture et de vêtements". Sur la base de vos bases actuelles, vous devriez réfléchir davantage, écrire davantage et pratiquer davantage – mettre en œuvre vous-même ce type de méthode est un bon processus de pose de bases.
Ce dont vous avez besoin maintenant n'est pas une méthode pour générer un tableau ordonné. Ce dont vous avez besoin, ce sont les deux méthodes suivantes :
Générer un tableau d'entiers non ordonnés de longueur n, la plage d'éléments du tableau est 0 ~ liée :
public int[] randomArray(int n, int bound) {
Random random = new Random();
int[] array = new int[n];
for (int i = 0; i < n; i++) {
array[i] = random.nextInt(bound);
}
return array;
}
Déterminez si le tableau est trié par ordre croissant :
public boolean isAscending(int[] array) {
for (int i = 1; i < array.length; i++) {
if (array[i - 1] > array[i]) { // 判断降序的话,将 > 改成 <
return false;
}
}
return true;
}
Avec ces deux méthodes, vous pouvez générer un tableau d'entiers pour le tri et déterminer si le tableau d'entiers est en ordre.