【发布时间】:2023-04-09 17:22:02
【问题描述】:
我试图输出一个随机数及其生成时间并对其进行排序,但每次我运行它时,它都会对数字进行排序,但在排序后每个数字的时间不同。
这些是给出的说明 对于本实验,您将编写:
1) 一个“MyNum”类,它将生成一个从 1 到 200 的随机整数。 2)一个“时间”类,它将以足够的分辨率返回系统时间,以显示插入之间的时间。我建议 System.nanoTime()。 3) 一个“节点”类,它将封装整数及其生成时间。 4)和一个“存储类”类,它将包含使用插入排序的所有已排序节点。 一种。这个类应该有一个“add”方法来添加到每个节点中。 湾。和方法,以便驱动程序类可以显示已排序的节点列表 5) “主”或驱动程序类。
驱动程序类应该使用其他类,例如 MyNum 类分配一个数字,Time 类分配一个时间给 Node 类。该节点被添加到 Storage 类,该类维护从低(位置 0)添加到高(位置 49)的节点的排序列表。驱动类会完成这个过程 50 次,完成后显示所有节点的排序顺序和插入顺序以及时间,以及最低和最高节点时间。
包实验室1; 这是主类控制一切 公共类驱动程序{
/**
* @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;
}
}
【问题讨论】: