mystery(int A[1..n], int n) {
// pre: n is a power of 2 for i=1..n {
for i = 1...n {
A[i] = A[i] + 1;
}
if (n>1) mystery(A, n/2);
}
}
Je pense que dans le pire des cas, cela fonctionne dans O (n), ai-je raison?Quelle est la durée de ces mystères?
Edit: Ceci est d'un autre ancien examen (qui a des réponses pour nous), mais l'algorithme suivant fonctionne en O (n * log n) (selon par la réponse). Pourquoi ça? Je pense que ces deux ne devraient différer que par quelques constantes.
void silly (int n)
if (n>1)
for (int i=0; i<n; i++)
output "looping for fun"
silly(n/2)
for (int i=0; i<n; i++)
output "looping for more fun"
silly(n/2)
for (int i=0; i<n; i++)
output "looping for even more fun"
Smells like devoirs? –
@SR & Jim - l'une des anciennes questions de mi-session, pas de solutions postées, j'ai un RDT à mi-parcours – derrdji