【发布时间】:2019-10-02 19:31:00
【问题描述】:
我不确定如何调用我的代码以使其与我的随机发生器相匹配。我的随机发生器基本上会在一个数组中生成一些随机整数并像这样打印它们。
编辑:如果我不清楚,我想将我的随机器调用到插入排序类的两个方法中!
我尝试使用从 geeks4geeks 获取的插入排序实现。它们都有参数 int[arr]。
这是我的代码
public class randomArr {
public void randomizer(){
Scanner sc = new Scanner(System.in);
Random r = new Random();
System.out.println("Please enter the amount of integers you want in your array: ");
int n = sc.nextInt();
// Create array of 1000 ints
int[] intArr = new int[n];
// Fill array with random ints
for ( int i = 0; i < intArr.length; i++) {
intArr[i] = r.nextInt(100);
System.out.print(intArr[i] + ", ");
}
}
}
这基本上是我想要发生的事情:
你可以看到我用我的“intArr”调用排序和打印数组。我如何用给定的方法调用我的方法?
我已经注释掉了我使用我的方法创建的对象,但是如果我将它留在里面,我将如何使用该对象来调用 sort() 和 printarray()?
public class insertionSort {
public static void main(String[] args){
//randomArr arry = new randomArr(); \\the object of my method
//arry.randomizer());
Scanner sc = new Scanner(System.in);
Random r = new Random();
System.out.println("Please enter the amount of integers you want in your array: ");
int n = sc.nextInt();
// Create array of 1000 ints
int[] intArr = new int[n];
// Fill array with random ints
for ( int i = 0; i < intArr.length; i++) {
intArr[i] = r.nextInt(100);
System.out.print(intArr[i] + ", ");
}
sort(intArr);
printArray(intArr);
}
public static void sort(int arr[]){
int n = arr.length;
for (int i = 1; i < n; ++i) {
int key = arr[i];
int j = i - 1;
/* Move elements of arr[0..i-1], that are
greater than key, to one position ahead
of their current position */
while (j >= 0 && arr[j] > key) {
arr[j + 1] = arr[j];
j = j - 1;
}
arr[j + 1] = key;
}
}
static void printArray(int arr[]){
int n = arr.length;
for (int i = 0; i < n; ++i)
System.out.print(arr[i] + ", ");
System.out.println();
}
}
【问题讨论】:
-
您的问题到底是什么?是要使用 randomArr 类中生成的 intArr 还是要在 insertSort 类中调用该类的 randomizer() 方法?
-
@MananAdhvaryu 我想将 randomizer() 方法调用到插入排序类中。抱歉,我不知道如何正确表达。我做了什么(我注释掉了)我如何使用 sort 方法和 insertSort 类中的 print 数组方法调用随机发生器?
标签: java arrays sorting random insertion-sort