Захват времени выполнения алгоритма сортировки для размера N с каждым шагом 1000 в Java - PullRequest
0 голосов
/ 13 января 2020

Мне пришлось сгенерировать массив случайных чисел. Размер массива составляет от 5000 до 100000 с шагом каждый l oop в 1000, а затем сортирует массив. Цель состоит в том, чтобы зафиксировать время выполнения каждого шага в сортировке. Поэтому, когда размер массива равен 5000 time = "x". Затем мне нужно записать размер массива и время каждого l oop в файл. Моя проблема в том, что мой файл генерирует одну и ту же строку снова и снова. Очевидно, я знаю, что в какой-то момент совершил ошибку. Если бы вы могли представить новичку ie с кодированием, я был бы признателен.

//Copy array G into array A starting at n = 5000 and incrementing by 1000.
  for (int n = 5000; n < size; n += 1000) {
     int[] A = new int[n];
     for (int i = 0; i < n; i++) {
        A[i] = G[i];
     }


  //Sort array list and log time
     long startTime = System.nanoTime();

     for (int j = 1; j < n - 1; j++) {
        for (int i = (j + 1); i < n; i++) {
           if (A[i] < A[j]) {
              buffer = A[j];
              A[j] = A[i];
              A[i] = buffer;
           }
        }
     }

     long endTime = System.nanoTime();
     long totalTime = endTime - startTime;
     timeArray[n] = totalTime;
     nArray[n] = n;


  //Capture file of logged times
     String fileName = "output.csv";
     try {
        PrintWriter outFile = new PrintWriter(new File(fileName));
        for (int i = 0; i < size; i++) {
           outFile.println(n + "," + totalTime);

        }
        outFile.close();
        System.out.println("Output file has been created: " + fileName);
     }
     catch (FileNotFoundException e) {
        System.out.println("Error: could not open file " + fileName);
     }   

  }
...