Bom, este é o meu 1º tópico no GUJ, não sei se postei no fórum de assunto certo, desculpem se for o caso, enfim:
Tenho um método que calcula a média entre N notas e estava querendo saber se fiz correto a Análise de complexidade em tempo de execução(melhor e pior caso) e determinar a classe de comportamento assintótico. Segue abaixo o trecho de código relevante ao cálculo(levando em contra atribuições, impressão, cálculos e testes como operação relevante). Deixo claro que não é exercício de faculdade, apenas ví esta classe(GradeBook, com pouquíssimas modificações) no livro do Deitel - Java como Programar 6ª edição, situada mais pro meio do cap. 4(não sei exatamente a página, não estou com o livro mais) e quis exercitar o assunto em questão que é de uma matéria passada:
[code] public void determineClassAverage() {
Scanner s = new Scanner(System.in); //(1) melhor e pior caso
int total = 0; //(1) melhor e pior caso
int gradeCounter = 0; //(1) melhor e pior caso
int grade;
double average;
System.out.printf("Digite a %d nota(-1 sair): ", gradeCounter + 1); //(1) melhor e pior caso
grade = s.nextInt(); //(1) melhor e pior caso
while(grade != -1) { //(N + 1) pior caso ou (1) melhor caso
total += grade;
gradeCounter++;
System.out.printf("Digite a %d nota(-1 sair): ", gradeCounter + 1);
grade = s.nextInt();
//(4N) pior caso
}
if(gradeCounter != 0) { //(1) melhor e pior caso
average = (double)total / gradeCounter; //(1) pior caso
System.out.printf("\nMedia: %.1f", average); //(1) pior caso
}
else {
System.out.printf("Nenhuma nota foi inserida!"); //(1) melhor caso
}
}[/code]
melhor caso: usuário digitar o valor de sentinela -1 de primeira:
Análise de complexidade: T(N) = 8
Classe de comportamento: O(1)
pior caso: usuário digitar N notas:
Análise de complexidade: T(N) = 5N + 9
Calsse de comportamento: O(N)
Está correto pessoal?
Obrigado.