2014-01-27 5 views
0

Я пытаюсь выставить случайное число и время его создания и сортировать, но каждый раз, когда я запускаю его, он сортирует числа, но получает разное время для каждого каждого номера после его сортировки.Я продолжаю получать разное время

Это были даны инструкции Для этой лаборатории вы будете писать:

1) класс А «тупит», который будет генерировать случайное целое число от 1 до 200. 2 класса) А «Time», который будет верните системное время с достаточным разрешением, чтобы показать время между вставками. Я предлагаю System.nanoTime(). 3) Класс «Узел», который будет инкапсулировать целое число и время, в которое он был сгенерирован. 4) И класс класса «Класс хранения», который будет содержать все СОРТНЫЕ Узлы, используя сортировку вставки. a. Этот класс должен иметь метод «добавить» для добавления в каждый узел. b. И метод (ы), чтобы класс драйвера мог отображать отсортированный список узлов 5) «Основной» или класс драйвера.

Класс драйвера должен выполнять другие классы, так что класс MyNum назначает число и класс времени для класса Node. Узел добавляется к классу Storage, который поддерживает отсортированный список узлов, добавленных из Low (позиция 0) в High (позиция 49). Класс драйвера завершит этот процесс 50 раз и после завершения отобразит все узлы в отсортированном порядке и в порядке вставки с временем, а также с наименьшим и самым высоким временем узла.

упаковка lab1; Это основной класс контролирует все общественного класса Driver {

/** 
* @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

Вы фактически не храните время, в течение которого генерируется каждое число. Вы печатаете текущее время, отбрасываете время, сортируете числа, а затем снова получаете текущий.

Вам необходимо добавить член time в класс Node и отсортировать узлы вместо сортировки ints. Обратите внимание, что ваш существующий класс Node имеет только локальные переменные и не содержит фактических членов. Вы должны помещать объявления переменных вне любых методов:

public class Node { 
    int num; 
    long time; 

    public Node() { 
     this.num = generateRandom(); 
     this.time = System.nanoTime(); 
    } 
} 
+0

так что проблема будет в моем классе хранения права? – user3220141

+0

Я не знаю, что вы имеете в виду. У вас есть проблемы во всех ваших классах, кроме Time. –

+0

О, ладно, я вижу, что ур говорит спасибо – user3220141

Смежные вопросы