두 개의 개별 알고리즘을 테스트하기 위해 Java 코드로 변환하려고합니다. 제 알고리즘 (PrefixAverages1) 인 :Java prefixAverages/array help
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를 예 [I]가 원소 X [0]의 평균 인 것을, X [1], ..., X [i].
이 난 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]의 평균이다.
이 내가 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))을 알아 내고 어느 알고리즘이 가장 효율적인지를 발견 할 수 있기를 바란다.
이 문제에 도움을 주시면 매우 감사하겠습니다.
시간을내어 읽고 도움을 주셔서 감사합니다.
입력 및 출력에 하나의 배열을 사용하는 데는 충분한 이유가 있습니까? 적어도 두 가지를 분리해야합니다. 나중에 읽을 필요가있는 배열의 부분을 덮어 쓰기 때문에 첫 번째 구현이 제대로 작동하지 않습니다. –
@ 마크 답장을 보내 주셔서 감사합니다, 마르크. 나는 알고리즘 의사 코드가 말한 것을 단지 따르고 있지만 어쩌면 내가 말한 것처럼 잘못된 것을했을 수도있다. 이 일을하는 다른 방법을 친절하게 제안 할 수 있습니까? 고맙습니다. 믹. – MusTheDataGuy
의사 코드를 살펴보십시오. 출력과 입력을 위해 다른 배열을 사용합니다 ('A []'vs'X []'). –