- Escreva uma fun��o recursiva com cabe�alho
int maximo (int v[], int ini, int fim);
que devolve o maior valor do vetor entre as posi��es ini e fim.
Use uma estrat�gia como a do mergesort (divis�o e conquista):
divida o vetor ao meio, chame a fun��o recursivamente para cada
uma das metades, depois "junte" as respostas.
- Escreva uma fun��o recursiva com cabe�alho
int maxmin (int v[], int n, int *max, int *min);
que devolve o maior valor do vetor em *max e o menor em *min.
- Escreva uma fun��o recursiva busca_tern�ria com o seguinte
cabe�alho:
int busca_ternaria (int v, int ini, int fim, int x);
Sua fun��o deve devolver 1 se x aparece no vetor, 0 em caso
contr�rio. Inspire-se na busca bin�ria. Na busca tern�ria, voc�
deve dividir o vetor em tr�s (em vez de em dois), comparar o x com
os dois elementos separadores dessas tr�s partes e, ou encontra x,
ou decide em qual das partes ele pode estar. Procura recursivamente
nesta parte.
- Simule o algoritmo mergesort com o seguinte vetor de entrada:
15 27 3 18 7 11 22 19 9 10 1 5 8 14
- Encontre um vetor com 10 elementos que faz o mergesort fazer o
maior n�mero poss�vel de trocas.
- Nota��o prefixa � definida de forma semelhante a nota��o
posfixa. Na nota��o prefixa, os operadores aparecem antes de seus
operandos. Assim, por exemplo, a express�o
A + B * C - ( D - E / F + G) / H + I
em nota��o prefixa ficaria:
- + A * B C + / + - D / E F G H I
Escreva uma fun��o recursiva que calcula o valor de uma express�o
prefixa. Suponha que exista uma fun��o
int valor (char ch);
que, dada uma letra, devolve o valor da vari�vel correspondente
�quela letra.