我试图输出一个随机数及其生成时间并对其进行排序,但每次运行它都会对数字进行排序,但每个数字在排序后会得到不同的时间。
这些是给出的指示 在本实验中,您将写下:
1)“MyNum”类将生成1到200的随机整数。 2)“时间”类,它将以足够的分辨率返回系统时间,以显示插入之间的时间。我建议使用System.nanoTime()。 3)“Node”类,它将封装整数和生成它的时间。 4)和一个“存储类”类,它将包含使用插入排序的所有SORTED节点。 一个。这个类应该有一个“add”方法添加到每个节点中。 湾和方法,因此驱动程序类可以显示排序的节点列表 5)“主要”或司机类。
驱动程序类应该运用其他类,以便MyNum类为Node类分配一个数字和Time类。该节点被添加到Storage类,该类维护从Low(位置0)到High(位置49)添加的节点的排序列表。驱动程序类将完成此过程50次,并在完成后按排序顺序和插入顺序显示所有节点的时间,最低和最高节点时间。
包lab1; 这是主要类控制一切 公共类司机{
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
int[] out = new int[50];
for (int i = 0; i < out.length; i++) {
out[i] = MyNum.genRandom();
}
System.out.println("Insertion order: ");
for (int i = 0; i < out.length; i++)
System.out.println("Int: " + out[i] + " " + "Time: " + Time.time());
System.out.println();
System.out.println("Sorted order: ");
Storage.insertionSort(out);
for (int i = 0; i < out.length; i++)
System.out.println("Int: " + out[i] + " " + "Time: " + Time.time());
System.out.println("Lowest time: " + "Highest time: ");
}
}
数字等级
package lab1;
import java.util.*;
/**
*
* @author alpho_000
*/
public class MyNum {
static Random number = new Random();
public static int genRandom(){
return number.nextInt(200)+1;
}
}
Node
package lab1;
/**
*
* @author alpho_000
*/
public class Node {
/**
*@return
*/
static String node(){
int num;
long time;
num = MyNum.genRandom();
time = Time.time();
return "Int: " + num + " " + "Time: " + time;
}
}
时间
package lab1;
/**
*
* @author alpho_000
*/
public class Time {
/**
*
* @return
*/
public static long time(){
return System.nanoTime();
}
}
存储类 包lab1;
public class Storage {
static boolean insertionSort;
public static int[] insertionSort(int[] MyNum){
int temp;
for (int i = 1; i < MyNum.length; i++) {
for(int j = i ; j > 0 ; j--){
if(MyNum[j-1] >= MyNum[j]){
temp = MyNum[j];
MyNum[j] = MyNum[j-1];
MyNum[j-1] = temp;
}
}
}
return MyNum;
}
}
答案 0 :(得分:0)
您实际上并未存储生成每个号码的时间。您打印当前时间,丢弃时间,对数字进行排序,然后再次获取当前时间。
您需要向Node类添加time
成员,并对节点进行排序,而不是对int进行排序。请注意,您现有的Node类只有局部变量,没有实际成员。您必须将变量声明放在任何方法之外:
public class Node {
int num;
long time;
public Node() {
this.num = generateRandom();
this.time = System.nanoTime();
}
}