Complexidade de Algoritmos Recursivos

Slides:



Advertisements
Apresentações semelhantes
IFTO ESTRUTURA DE DADOS AULA 05 Prof. Manoel Campos da Silva Filho
Advertisements

Soluções Iterativas com Laços
Um programa em C Bibliotecas Variáveis globais
Listas Lineares Estrutura que permite representar um conjunto de dados de forma a preservar a relação de ordem linear. Uma lista linear é composta de nós,
Programação Orientada a Objetos – Parte II
Aula 10 Algoritmos de Busca
Algoritmos de Ordenação
Recursividade Prof. Rosana Palazon.
Listas encadeadas Prof. Rosana Palazon.
Algoritmos de Ordenação
Recursividade Prof. Alex F. V. Machado
Introdução à Computação - Jorge Macêdo
1 MergeSort Seja uma lista A de n elementos. O algoritmo consiste das seguintes fases Dividir A em 2 sub-listas de tamanho n/2 Conquistar: ordenar cada.
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
Automato de Pilha.
David Menotti Estruturas de Dados I DECOM – UFOP
Rasterização de linhas e polígonos
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2013 Capítulo II Confecção de Tabelas.
Laboratório de Programação de Computadores II 2S/2009.
Laboratório de Programação de Computadores II Aula 1 2S/2009.
RECURSIVIDADE Análise de algoritmos UNISUL Ciência da Computação
Modularização: funções e procedimentos (continuação)
Algoritmos de Ordenação
Algoritmos de Ordenação 4
Compressão de Textos Juliano Palmieri Lage.
Pesquisa em Memória Primária
Exercicios de revisão Exercicio tirados de
Professor: Bruno Moser de Alvarenga
Algoritmos Recursivos Klauko Mota. Conceito de Recursividade Um programa recursivo é um programa que chama a si mesmo, direta ou indiretamente Conceito.
© 2003 Introdução à programaçãoComputadores e programação I Linguagens de programação Introdução ao C (continuação)
1 Tipos Abstratos de Dados Pilhas e Filas TPA – 2008 –1 Prof. Mateus Costa.
Árvores Binárias de Pesquisa
Heap Sort TPA – Prof. Mateus Costa
Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação
UNIDADE 6 - complemento Funções recursivas
PROGRAMAÇÃO I UNIDADE 4.
Programação II Estruturas de Dados Aula 02 - continuação
Listas lineares Denise Guliato Faculdade de Computação – UFU
Métodos de Ordenação e Busca
Linguagem de programação I A Carlos Oberdan Rolim Ciência da Computação Sistemas de Informação.
Mergesort Katia Guimarães.
Orientação a Objetos e Java Graduação em Ciência da Computação
Introdução à Linguagem C
Lógica para Computação Prof. Celso Antônio Alves Kaestner, Dr. Eng. celsokaestner (at) utfpr (dot) edu (dot) br.
Aula 10 Algoritmos de Busca
Revisão Luis Antonio Tavares
Ciclos for, while e do...while
CES-10 INTRODUÇÃO À COMPUTAÇÃO Aulas Práticas – 2014 Capítulo IX Subprogramação e Recursividade.
DCC 001 Programação de Computadores 2º Semestre de 2011
INE Fundamentos de Matemática Discreta para a Computação
Algoritmos e Programação MC102
Ciência da Computação 1 PROGRAMAÇÃO ESTRUTURADA II Profª. Noeli.
VETORES AULA 01 Roteiro da aula Referência ao Programa: Estrutura de Dados.  Variáveis Compostas homogenias   Objetivo: apresentar VETOR.
Professor Luiz José Hoffmann Filho
PCI- Funções e Procedimentos Profa. Mercedes Gonzales Márquez.
1 Programação – JAVA Unidade 3 – Loops e Lógica Prof. Aparecido V. de Freitas Curso de Ciência da Computação.
ALGORITMOS Profº Antonio Carlos Marcelino de Paula 1.
USP – ICMC – SSC SSC0300 2º Semestre 2015
Ordenação (Sorting) Ordenar é dispor os elementos de um conjunto numa ordem ascendente ou descendente. Problema: Dados n números, arranjá-los em ordem.
Fundamentos de Programação 1 Aula N. 02 Prof. SIMÃO Jean Marcelo SIMÃO Linguagem C “Laços de Repetição em C”
Capítulo 7 Métodos. 2Capítulo 7 – Métodos Métodos Criação e chamada de métodos Passagem de parâmetros VarArgs Sobrecarga Método com valor de retorno Métodos.
1 CCO 016 FUNDAMENTOS DE PROGRAMAÇÃO Universidade Federal de Itajubá Prof. Dr. Edison Oliveira de Jesus.
Recursividade e análise Cristiano Arbex Valle Vinicius Fernandes dos Santos
Técnicas de Análise de Algoritmos Cristiano Arbex Valle Vinicius Fernandes dos Santos
Ambientação com a Sintaxe de Java: parte 2 Prof. Gustavo Wagner Slides Originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB  Centro de.
Capítulo VIII – Técnicas de Ordenação
Função de buscar elemento na lista simplesmente encadeada
Algoritmos de ordenação Estruturas avançadas de dados I
Transcrição da apresentação:

Complexidade de Algoritmos Recursivos Alex F. V. Machado

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

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

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) ?

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

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); }