#class #sorting #random #numbers
#класс #сортировка #Случайный #числа
Вопрос:
Я создаю два класса, называемые секундомером и случайными числами, что я уже сделал, но мне нужно было создать тестовую программу, которая измеряла бы время выполнения сортировки 100 000 чисел с помощью сортировки по выбору. Я знаю, как создать сортировку выбора, я просто не знаю, как взять класс случайных чисел и объединить его с сортировкой выбора, я получаю сообщение об ошибке «несовместимые типы случайных чисел не могут быть преобразованы в int» Надеюсь, кто-нибудь сможет мне помочь.
Мой класс случайных чисел
import java.util.Random;
public class randomnumbers {
Random ran1 = new Random();
private int size;
public randomnumbers(){
size = 100000;
}
public int getSize(){
return size;
}
public void setSize(int newSize){
size = newSize;
}
public int [] createArray(int [] size){
for (int i = 0; i < size.length; i ){
size[i] = ran1.nextInt();
}
return size;
}
public static void printArray (int [] array){
for (int i = 0; i < array.length; i ){
if (i < 0){
System.out.println(array[i] " ");
}
}
}
}
Моя тестовая программа
public static void main (String [] args){
// Create a StopWatch object
StopWatch timer = new StopWatch();
//create random numbers
randomnumbers numbers = new randomnumbers();
//Create the size of the array
numbers.getSize();
// Invoke the start method in StopWatch class
timer.start();
//sort random numbers
selectionSort();
// Invoke the stop method in StopWatch class
timer.stop();
// Display the execution time
System.out.println("The execution time for sorting 100,000 "
"numbers using selection sort: " timer.getElapsedTime()
" milliseconds");
}
// selectionSort performs a selection sort on an array
public static void selectionSort(int[] array) {
for (int i = 0; i < array.length - 1; i ) {
int min = array[i];
int minIndex = i;
for (int j = i 1; j < array.length; j ) {
if (array[j] < min) {
min = array[j];
minIndex = j;
}
}
if (i != minIndex) {
array[minIndex] = array[i];
array[i] = min;
}
}
}
}
Комментарии:
1. Пожалуйста, сделайте правильный отступ в своем коде. Это действительно имеет значение!
Ответ №1:
Где именно вы получаете ошибку «несовместимые типы случайных чисел не могут быть преобразованы в int»?
Существует множество проблем с кодом:
- Нетрадиционное именование
size
поле вrandomnumbers
классе используется как фактический размер массива в конструкторе, но вcreateArray
нем оно затеняется параметром с тем же именем, но другим типом и значением.- Вы не передаете никакой массив
selectionSort
вMain
. Здесь я получаю ошибку компиляции в вашем коде. - printArray имеет
if (i < 0)
условие, которое равно false для всех чисел ran1.nextInt(), поэтому оно ничего не будет печатать.
Подача selectionSort
с numbers.createArray(new int[numbers.getSize()])
помощью компилирует и завершает сортировку массива.