Я пытаюсь перевести два отдельных алгоритма в код Java, чтобы проверить их; первый алгоритм (PrefixAverages1):
For i = 0 to n-1
Let s = X[0]
For j = 1 to i
Let s = s + X[j]
End For
Let A[i] = s / (i + 1)
End For
Вывод: n-элементный массив A чисел такой, что A [i] является средним значением элементов X [0], X [1], ..., X [i].
Это перевод на Java, который я придумал для PrefixAverages1:
import java.util.Arrays;
public class PrefixAverages1 {
static double array[] = new double[10];
public static void prefixAverages(){
for (int i = 0; i < 10; i++){
double s = array[i];
for (int j = 0; j < 10; j++){
s = s + array[j];
}
array[i] = s / (i + 1);
System.out.println(Arrays.toString(array));
}
}
public static void main(String[] args){
prefixAverages();
}
}
Второй алгоритм (PrefixAverages2):
Let s = X[0]
For i = 0 to n-1
Let s = s + X[i]
Let A[i] = s / (i + 1)
End For
Вывод: n-элементный массив A чисел такой, что A [i] является средним значением элементов X [0], X [1], ..., X [i].
Это перевод на Java, который я придумал для PrefixAverages2:
import java.util.Arrays;
public class PrefixAverages2 {
static double array[] = new double[10];
public static void prefixAverages(){
double s = 0;
for (int i = 0; i < 10; i++){
s = s + array[i];
array[i] = s / (i + 1);
}
array[0] = 10;
System.out.println(Arrays.toString(array));
}
public static void main(String[] args){
prefixAverages();
}
}
Я пытаюсь проверить алгоритмы, но не совсем уверен, с чего начать. Я пытаюсь создать массив, а затем применить к нему эти алгоритмы, выполняя их вручную для небольших значений n.
Где / как мне начать добавлять элементы в массив для начала?
Я также пытаюсь проанализировать оба алгоритма путем подсчета примитивных операций и получения T (n) для обоих алгоритмов. Я хотел бы иметь возможность рассчитать временную сложность (Big Oh, O (n)) каждого алгоритма и выяснить, какой из них наиболее эффективен.
Любая помощь с этим будет принята с благодарностью.
Спасибо, что нашли время, чтобы прочитать и помочь.