A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Complexidade de Algoritmos Recursivos

Apresentações semelhantes


Apresentação em tema: "Complexidade de Algoritmos Recursivos"— Transcrição da apresentação:

1 Complexidade de Algoritmos Recursivos
Alex F. V. Machado

2 Recursividade int fatorial (int N)‏ { if (N<= 1)‏ return(1); else
Implementação recursiva int fatorial (int N)‏ { if (N<= 1)‏ return(1); else return( N * fatorial(N-1)); } 236

3 Recursividade X= fatorial (4)‏ return( 4* fatorial(3) )‏
237

4 Análise de Recursividade
T(n)‏ tempo de processar o algoritmo para entrada n número de passos ou operações dominantes Fatorial T(n) = 1, se n = 0 = T(n-1) + 1, se n > 0 mas quanto é T(n-1) ?

5 T(n) - Fatorial = (T(n-1)) + 1 = (T(n-2) + 1) + 1 = T(n-2) + 2
..... forma geral, T(n) = T(n-k) + k, 1  k  n fazendo n = k, reduzimos a T(n) = n

6 void mergeSort(int vec[], int vecSize) { int mid;
void merge(int vec[], int vecSize) { int mid; int i, j, k; int* tmp; mid = vecSize / 2; i = 0; j = mid; k = 0; while (i < mid && j < vecSize) { if (vec[i] > vec[j]) { tmp[k] = vec[i]; ++i; } else { tmp[k] = vec[j]; ++j; ++k; if (i == mid) { while (j < vecSize) { ++j; k; while (i < mid) { ++i; k; for (i = 0; i < vecSize; ++i) { vec[i] = tmp[i]; void mergeSort(int vec[], int vecSize) { int mid; if (vecSize > 1) { mid = vecSize / 2; mergeSort(vec, mid); mergeSort(vec + mid, vecSize - mid); merge(vec, vecSize); }

7

8

9

10


Carregar ppt "Complexidade de Algoritmos Recursivos"

Apresentações semelhantes


Anúncios Google