版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
由于博主最近想去面试了,需要重新复习下算法与数据结构,这里简单的整理下。
目标:生成并返回一个含有n个整型元素,数值范围为left~right的数组;
在这里自定义个SortUtil作为一个排序工具类
实现过程:传入参数n,Left,Right。先声明一个数组大小为n的整型数组,循环将数组元素赋值为(int) (Math.random()*(Right-Left)+Left),其中Math.Random()*(Right-Left)可以生成由0到Right-Left的数值,在此基础上加上Left值,最后进行强转,这样就的到了一个随机数值范围为Left~Right的数值;
代码实现:
//排序工具类(默认从小到大排序)
public class SortUtil {
//返回元素个数为n,数值范围是Left~Right(不包含Right)的随机数组
public static int[] getRandomArrayData(int n,int Left,int Right){
int[] array = new int[n];
for(int i=0;i<n;i++){
array[i] = (int) (Math.random()*(Right-Left)+Left);
}
return array;
}
}
Client类对生成的数组进行打印:
import java.util.Scanner;
public class Client {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int n = input.nextInt();
int left = input.nextInt();
int right = input.nextInt();
int[] array = SortUtil.getRandomArrayData(n, left, right);
System.out.println("打印生成的数组:");
print(array);
}
public static void print(int[] array){
for(int i=0;i<array.length;i++){
System.out.print(array[i]+" ");
}
System.out.println();
}
}
生成一个数组大小为10,数值范围是5~16的数组,输出数组: