Método de ordenação - objetivos:
|
|
|
- Clara Benevides Esteves
- 9 Há anos
- Visualizações:
Transcrição
1 Método de ordenação - objetivos: Corresponde ao processo de rearranjar um conjunto de objetos em uma ordem ascendente ou descendente. Facilitar a recuperação posterior de itens do conjunto ordenado. São largamente utilizados em Sistemas Gerenciadores de Banco de Dados (SGBDs). Em alguns casos é necessário fazer a avaliação da ordenação no melhor, médio e pior caso.
2 Método de ordenação Bolha (Bouble sort) Método mais conhecido; Ordenação por trocas (compara o elemento da bolha com o próximo elemento); Troca de valores entre posições consecutivas; Ordenação sequencial (percorre o vetor e compara elemento a elemento, mesmo que tal elemento ou todos já estejam ordenados) d Recomendado, portanto, para vetores com poucos elementos.
3 Método de ordenação Bolha (Bouble sort) A ordenação bolha é feita através de dois laços. O laço mais externo, da variável cont1, determina qual elemento do vetor será usado como base de comparação (a bolha ). O laço mais interno, da variável cont2, compara cada item com o elemento base do primeiro laço e, quando encontrar um item menor que o de base, faz a troca. O processo de troca usa uma variável temporária (temp) para guardar o valor do menor valor, inicialmente; depois, põe na posição que antes era ocupada pelo item do laço mais interno, o valor do item de base; finalmente, atribui o valor armazenado na variável temporária (o menor valor) ao elemento base. A troca esta concluída.
4 Método de ordenação Bolha (Bouble sort) Ex: Ordenar os elementos de um vetor vet, com 3 posições, respectivamente 12,8 e 3. Passo 1: fixar a bolha no primeiro i elemento do vetor vet: vet[0] vet[1] vet[2]
5 Método de ordenação Bolha (Bouble sort) Passo 2: comparar o elemento da bolha com o próximo elemento se for maior, faz a troca, seguindo os passos: A) O menor elemento é armazenado na variável temporária (temp = vet[1], ou seja, temp guadará 8) B) O Maior elemento é copiado na posição que antes era ocupado pelo menor elemento (vet[1] = vet[0]) vet[0] vet[1] vet[2] C) O valor do menor elemento (variável temp) é copiado na posição que antes era ocupada pelo maior elemento (vet[0]=temp) vet[0] vet[1] vet[2]
6 Método de ordenação Bolha (Bouble sort) Passo 3: Repete-se o todos os procedimentos do passo 2, agora comparando a bolha com o último elemento: A) O menor elemento é armazenado na variável temporária (temp = vet[2], ou seja, temp guadará 3) B) O Maior elemento é copiado na posição que antes era ocupado pelo menor elemento (vet[2] = vet[0]) vet[0] vet[1] vet[2] C) O valor do menor elemento (variável temp) é copiado na posição que antes era ocupada pelo maior elemento (vet[0]=temp) vet[0] vet[1] vet[2]
7 Método de ordenação Bolha (Bouble sort) Passo 4: Passo a bolha para o próximo elemento e repito os passos 1 e 2: Repetição passo 2: A) temp = vet[2] B) vet[2] = vet[1] C) vet[1] = temp (fim) vet[0] vet[1] vet[2] vet[0] vet[1] vet[2] vet[0] vet[1] vet[2]
8 Método de ordenação Bolha (Bouble sort) Código fonte (C ANSI): #include <conio.h> #include <stdio.h> int main(void){ int vet[3]={12,8,3; //armazendo dados no vetor vet int temp; //variável que armazenará menor elemento getch(); printf("vetor antes da ordenacao:\n\n"); \ for(int cont1=0;cont1<=2;cont1++){ //exibindo os dados originais printf("%d\t", vet[cont1]); //****** Método de ordenação Bouble Sort ******** for(int cont1=0;cont1<=1;cont1++){ //laço da bolha for(int cont2=cont1+1;cont2<=2;cont2++){ //laço de comparação if(vet[cont1]>vet[cont2]){ t1] t2]){ //compara bolha com próximo elemento temp = vet[cont2]; // temp guarda menor elemento da comparação vet[cont2]=vet[cont1]; // copia maior elemento para proxima posicao vet[cont1]=temp; t1] t // menor elemento vai para a posição menor printf("\n\n\nvetor depois da ordenacao:\n\n"); for(int cont1=0;cont1<=2;cont1++){ // exibe vetor ordenado printf("%d\t", vet[cont1]);
9 Método de Ordenação Shell (Shell Sort) O algoritmo de ordenação por shel foi criado por Donald L. Shell em Ele tem algumas similaridades com o algoritmo anterior. Neste algoritmo, ao invés dos dados serem comparados com os seus vizinhos, é criado um gap. O gap, no início, é igual à parte inteira da divisão do número de elementos da lista por 2. Por exemplo, se a nossa lista tem 15 elementos, o gap inicial é igual a 7. São então comparados os elementos 1o. e 8o., 2o. e 9o., e assim por diante. O que acontece, então? A maior parte dos elementos já vão para suas posições aproximadas. O 15, por exemplo, já é mandado para o fim da lista na primeira passagem, ao contrário do que acontece na ordenção de troca. Ao terminar de passar por todos os elementos da lista, o gap é diminuído em 1 e é feita uma nova passagem. Isso é repetido até que o gap seja igual a 0. Programa à seguir.
10 Método de Ordenação Shell (Shell Sort) Código-fonte (C ANSI): //ordenacao shell sort #include <conio.h> #include <stdio.h> int main (void){ int comp=0, troca=0, gap=0, temp=0, cont1=0, cont2=0, cont3=0; int vet[20]; int tamanhovetor = sizeof(vet)/sizeof(*vet); int i, j, incremento; for(cont1=0;cont1<tamanhovetor;cont1++){ printf("digite o %do. elemento do vetor ",cont1+1); 1); scanf("%d",&vet[cont1]); printf("\n\nos dados do vetor digitados foram:\n\n"); for(cont1=0;cont1<tamanhovetor;cont1++){ printf("%d\t",vet[cont1]); gap = tamanhovetor/2; while (gap > 0){ for (cont1=0; cont1 < tamanhovetor; cont1++){ cont2 = cont1; temp = vet[cont1]; while ((cont2 >= gap) && (vet[cont2-gap] > temp)){ vet[cont2] = vet[cont2 - gap]; cont2 = cont2 - gap; vet[cont2] = temp; if (gap/2!= 0) gap = gap/2; else if (gap == 1) gap = 0; else gap = 1; printf("\n\nos dados do vetor ordenados foram:\n\n"); for(cont1=0;cont1<tamanhovetor;cont1++){ printf("%d\t",vet[cont1]); printf("\n\nfinal de programa - pressione ENTER para sair"); getch (); //Pausa para a execução do programa//
11 Método de Ordenação Quick Sort Considerado um dos melhores métodos de ordenação. Visa particionar o vetor, ordenando as porções menores do vetor, separadamente. Método de divisão e conquista. Funciona da seguinte maneira: Seleciona-se um valor x para ser o pivô (o valor da posição do meio do vetor); Divide o vetor com os valores menores ou iguais a x, e a segunda parte com os valores maiores.
12 Método de Ordenação Quick Sort Exemplo para o primeiro particionamento: D C H F E A I B G divide o vetor no meio D C H F E A I B G permuta H com B D C B F E A I H G permuta F com A D C B A E F I H G vetor dividido em duas partições. Segue permutando e dividindo...
13 Método de Ordenação Quick Sort Código-fonte (C ANSI): void troca(int x[], int i, int j){ //função de troca int temp; temp = x[i]; x[i] = x[j]; x[j] = temp; int random(int min, int max){ //localiza elemento aleatorio no vetor return (int)((max - min) * rand()/(float)rand_max + min); void QuickSort(int x[], int limiteinferior, int limitesuperior){ int i, m; if(limiteinferior >= limitesuperior){ //indica que estou fora da particao atual return; //retorno vazio (null) troca(x, limiteinferior, random(limiteinferior, limitesuperior)); //faz a troca do elemento maior pelo menor m = limiteinferior; for(i=limiteinferior+1; i<=limitesuperior; i++){ if(x[i] < x[limiteinferior]){ //faz a troca do proximo elemento da partição troca(x, ++m, i); troca(x, limiteinferior, m); QuickSort(x, limiteinferior, it i m-1); //particiona i e ordena elementos da partição anterior à atual QuickSort(x, m+1, limitesuperior); //particiona e ordena elementos da proxima particao à atual int main (void){ int x[50]; int tamanhovetor = sizeof(x)/sizeof(*x); //determina o tamanho do vetor for(int i=0;i<tamanhovetor;i++){ //preenchendo o vetor x[i] = rand() % 500; //gera numeros aleatórios, de 0 a 500 e os armazena nas posicoes do vetor for(int i=0;i<tamanhovetor;i++){ //exibe vetor atual printf("%d\t", x[i] [] ); QuickSort(x, 0,tamanhoVetor-1); //passa os elementos do vetor, o tamenho incial e tamanho final-1 (ex: 0 a 9,para um vetor de 10 posicoes) printf("\n"); ") for(int i=0;i<tamanhovetor;i++){ //exibe vetor ordenado printf("%d\t", x[i] ); getch();
14 Método de Busca Sequencial C (fazer...).
15 Imagine uma lista telefônica: João Paulo Pedro André Fernando Maria Sônia Rafael Tiago Zenobio Se quisermos buscar um nome qualquer dentro desta lista, temos que percorrer toda a lista, ou pelo menos o necessário até encontrarmos o nome procurado. Mas se tivermos a lista ordenada por ordem alfabética, fica muito mais fácil: é só irmos para a letra que queremos, e logo encontraremos o telefone desejado.
16 Porém, em uma lista mais longa, mesmo estando a mesma ordenada, d a busca manual (item a item) levaria muito tempo, gerando baixa produtividade para o usuário. É nesse contexto que surgem os métodos de busca, deixando a cargo do sistema computacional a tarefa de procurar o dado desejado. Existem dois tipos básicos de busca: A busca manual e a busca binária.
17 Método de Busca Sequencial A pesquisa seqüencial utiliza o método mais básico de pesquisa de dados: vai pesquisando os dados, um a um, até que encontre o dado buscado. Esse tipo de pesquisa é útil caso a lista de busca esteja desordenada, mas caso a lista esteja em ordem, seu rendimento é bastante baixo. O número de dados pesquisados, neste caso, é igual à posição dos dados. Por exemplo, para que se encontre um dados que está na 10ª posição, é necessário que se façam 10 buscas. À seguir, a implementação do método de busca sequencial, aplicado ao exemplo da lista telefônica.
18 Método de Busca Sequencial Código-fonte (C ANSI): #include <iostream> #include <conio.h> #include <stdio.h> //cria a estrutura chamada listatel struct listatel { char nome[60]; char telefone[15]; ; int main(void){ //referencia um alias para a estrutura struct listatel agendatel[10]; char nome_pesq[60]; int achou; for(int cont=0;cont<=9;cont++){ printf("digite o nome da %da. pessoa: ",cont+1); fflush(stdin); gets(agendatel[cont].nome); printf("digite o telefone: "); fflush(stdin); gets(agendatel[cont].telefone); printf("\n\nos dados presentes na lista telefonica sao:\n"); //realizando a pesquisa sequencial printf("\n\ndigite o nome a ser pesquisado: "); fflush(stdin); gets(nome_pesq); achou=0; //inicializa a flag achou como falso for(int cont=0;cont<=9;cont++){ if(strcmp(strupr(agendatel[cont].nome), strupr(nome_pesq))==0){ achou=1; //modifica a flag, indicando que foi encontrado o valor pesquisado printf("\n%s\t\t%s - posicao %d\n",agendatel[cont].nome, agendatel[cont].telefone, cont+1); if(achou==0){ //indica que nao foi encontrada nenhuma ocorrencia para a pesquisa printf("\n\nnao foi encontrado nenhuma ocorrencia para %s\n",nome_pesq); getch(); //exibindo os dados dos registros printf("#\tnome\t\ttelefone\n"); \t\tt f \ ") for(int cont=0;cont<=9;cont++){ printf("%d\t%s\t", cont+1, agendatel[cont].nome); printf("%s\n",agendatel[cont].telefone);
19 Método de Busca Binária A busca binária é um método mais avançado de busca, que faz o seguinte caminho: a primeira busca é feita no meio da lista. Caso o dado buscado seja maior que o dado central da lista, a nova pesquisa será feita somente da metade para a frente da lista. Caso contrário, da metade para trás. É claro que se o dado central for o buscado, a pesquisa termina por aí. IMPORTANTE!!! A busca binária só ocorre de forma eficiente i se os dados d estiverem devidamente ordenados d De forma padrão, apenas uma única ocorrência é encontrada. Ex: se tivermos duas pessoas com o mesmo nome, ele encontra apenas uma delas.
20 Método de Busca Binária Código-fonte (C ANSI): Ver o código fonte busca_binaria.cpp
21 1. Implemente o método de pesquisa sequencial para pesquisar dados do tipo real e ordene os números, através do método de ordenação Shell sort. Ao final, o usuário terá direito de pesquisar novo dado. 2. Implemente o método de pesquisa binária para pesquisar dados do tipo real e ordene os números, através do método de ordenação Quick sort. Ao final, o usuário terá direito it de pesquisar novo dado. 3. Utilize o método de ordenação Bouble sort para ordenar 10 números quaisquer em ordem decrescente. 4. Implemente o método Bouble sort para ordenar um vetor de 5 elementos do tipo string. Dica: utilize a função strcmp() para comparar os elementos e strupr() para deixá-los todos em maiusculo (vide exemplos neste material).
22 5. Utilize o método de ordenação Quick sort para odenar 10 números quaisquer em ordem decrescente. esce 6. Implemente o método Shell sort para ordenar um vetor de 5 elementos do tipo string. Dica: utilize a função strcmp() para comparar os elementos e strupr() para deixa-los todos em maiusculo (vide exemplos neste material). 7. (Desafio 1)Faça um estudo comparativo dos métodos de ordenação Bouble sort, Shell sort e Quick sort, para ordenar um vetor de 100 elementos inteiros, criado aleatoriamente, através de função randômica do C. Dica: crie duas variáveis. Uma que contará quantas iterações são feitas dentro de cada método de ordenação e outra que contará quantas trocas foram feitas. Ao final, exiba a primeira variável, que indicará a comparação e a segunda, que indicará a quantidade de trocas efetuadas. Ao final do estudo, esboce a comparação através de um gráfico de barras, feito em qualquer programa (ex: Excel) 8. (Desafio 2) Descubra qual o grau de complexidade dos 3 métodos de ordenação e faça um estudo comparativo desses graus, indicando qual deles é o mais complexo
23 UNIDADE II Métodos de Ordenação e Busca FIM
Departamento de Engenharia Rural Centro de Ciências Agrárias. Programação I
Departamento de Engenharia Rural Centro de Ciências Agrárias Programação I Algoritmos de busca Basicamente podem ser citadas duas estratégias para procurar (ou buscar) algo em uma coleção de dados: Busca
Listas Estáticas. SCC Algoritmos e Estruturas de Dados I. Prof. Fernando V. Paulovich. *Baseado no material do Prof.
Listas Estáticas SCC0202 - Algoritmos e Estruturas de Dados I Prof. Fernando V. Paulovich *Baseado no material do Prof. Gustavo Batista http://www.icmc.usp.br/~paulovic [email protected] Instituto de
ALGORITMOS DE ORDENAÇÃO
ALGORITMOS DE ORDENAÇÃO Prof. André Backes Conceitos básicos 2 Ordenação Ato de colocar um conjunto de dados em uma determinada ordem predefinida Fora de ordem 5, 2, 1, 3, 4 Ordenado 1, 2, 3, 4, 5 OU 5,
Métodos de Ordenação
Métodos de Ordenação Conceitos básicos sobre ordenação Ordenar corresponde ao processo de rearranjar um conjunto de objetos em uma ordem específica. Objetivo da ordenação: facilitar a recuperação posterior
INF 1010 Estruturas de Dados Avançadas
INF 1010 Estruturas de Dados Avançadas Listas de Prioridades e Heaps 1 Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um
MÉTODOS DE ORDENAÇÃO. Introdução à Programação SI2
MÉTODOS DE ORDENAÇÃO Introdução à Programação SI2 2 Conteúdo Conceitos básicos Classificação por troca Classificação por inserção Classificação por seleção 3 Conceitos Básicos Ordenar: processo de rearranjar
Aula 3 Listas Lineares Sequenciais Ordenadas. prof Leticia Winkler
Aula 3 Listas Lineares Sequenciais Ordenadas prof Leticia Winkler 1 Listas Lineares Sequenciais Ordenadas Elementos da lista estão dispostos num vetor (contíguos na memória) e ordenado de acordo com alguma
Programação II. Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio
Programação II Busca em Vetor (search) Bruno Feijó Dept. de Informática, PUC-Rio Busca em Vetor Problema: Entrada: vetor v com n elementos elemento d a procurar Saída m se o elemento procurado está em
Existem duas categorias de algoritmos de ordenação: Os algoritmos de ordenação são avaliados de acordo com os seguintes critérios:
MÉTODOS DE ORDENAÇÃO E PESQUISA ORDENAÇÃO: consiste em arranjar um conjunto de informações semelhantes numa ordem crescente ou decrescente; PESQUISA: consiste em executar uma pesquisa sobre a estrutura
BUSCA EM ARRAYS. Prof. André Backes. Ato de procurar por um elemento em um conjunto de dados
BUSCA EM ARRAYS Prof. André Backes Definição 2 Ato de procurar por um elemento em um conjunto de dados Recuperação de dados armazenados em um repositório ou base de dados A operação de busca visa responder
INF 1007 Programação II
INF 1007 Programação II Aula 08 Busca em Vetor Edirlei Soares de Lima Busca em Vetor Problema: Entrada: vetor v com n elementos; elemento d a procurar; Saída: m se o elemento procurado
O Problema da Ordenação Métodos de Ordenação Parte 1
Métodos de Ordenação Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2010 Ordenação (ou classificação) é largamente utilizada Listas telefônicas e dicionários Grandes sistemas de BD
Estruturas de Dados. Módulo 17 - Busca. 2/6/2005 (c) Dept. Informática - PUC-Rio 1
Estruturas de Dados Módulo 17 - Busca 2/6/2005 (c) Dept. Informática - PUC-Rio 1 Referências Waldemar Celes, Renato Cerqueira, José Lucas Rangel, Introdução a Estruturas de Dados, Editora Campus (2004)
Métodos de Ordenação Parte I
Estrutura de Dados II Métodos de Ordenação Parte I Prof a Márcio Bueno [email protected] / [email protected] Material baseado nos materiais da Prof a Ana Eliza e Prof. Robson Lins Rearranjar
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TURMA 2008/1 2 PERÍODO MÓDULO 3 AVALIAÇÃO MP2 DATA 2/10/2008 ESTRUTURAS DE DADOS 2008/2 Dados de identificação do Acadêmico: Nome: Login: CA: Cidade:
Listas (Parte 2) Túlio Toffolo [email protected] www.toffolo.com.br. BCC202 Aula 10 Algoritmos e Estruturas de Dados I
Listas (Parte 2) Túlio Toffolo [email protected] www.toffolo.com.br BCC202 Aula 10 Algoritmos e Estruturas de Dados I Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento
Lista Ordenada. Estrutura de Dados. Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35
Lista Ordenada Estrutura de Dados Universidade Federal de Juiz de Fora Departamento de Ciência da Computação 1 / 35 Conteúdo Definição Operações Representações Contígua Encadeada Aplicação Exercícios 2
Programação de Computadores II. Cap. 17 Busca
Programação de Computadores II Cap. 17 Busca Livro: Waldemar Celes, Renato Cerqueira, José Lucas Rangel. Introdução a Estruturas de Dados, Editora Campus (2004) Slides adaptados dos originais dos profs.:
Estrutura de Dados. Algoritmos de Ordenação. Prof. Othon M. N. Batista Mestre em Informática
Estrutura de Dados Algoritmos de Ordenação Prof. Othon M. N. Batista Mestre em Informática Roteiro Introdução Ordenação por Inserção Insertion Sort Ordenação por Seleção Selection Sort Ordenação por Bolha
INF1007: Programação 2 6 Ordenação de Vetores. 01/10/2015 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 6 Ordenação de Vetores 01/10/2015 (c) Dept. Informática - PUC-Rio 1 Tópicos Introdução Ordenação bolha (bubble sort) Ordenação por seleção (selection sort) 01/10/2015 (c) Dept. Informática
Métodos de ordenação. Bubble sort:
Métodos de ordenação Bubble sort: O método de ordenação por bubble sort ou conhecido como bolha consiste em compara dados armazenados em um vetor de tamanho qualquer, comparando cada elemento de uma posição
Linguagem C: Ordenação
Instituto de C Linguagem C: Ordenação Luis Martí Instituto de Computação Universidade Federal Fluminense [email protected] - http://lmarti.com Tópicos Principais Introdução Algoritmos de ordenação Ordenação
DAINF - Departamento de Informática
DAINF - Departamento de Informática Algoritmos 2 - Árvore binária de busca Prof. Alex Kutzke ( http://alex.kutzke.com.br/courses ) 30 de Novembro de 2015 Slides adaptados do material produzido pelo Prof.
ÁRVORES BINÁRIAS DE BUSCA. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos
ÁRVORES BINÁRIAS DE BUSCA Vanessa Braganholo Estruturas de Dados e Seus Algoritmos REFERÊNCIA Szwarcfiter, J.; Markezon, L. Estruturas de Dados e seus Algoritmos, 3a. ed. LTC. Cap. 4 INSTITUTO DE COMPUTAÇÃO
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária. Túlio Toffolo
Aula T19 BCC202 Pesquisa (Parte 1) Pesquisa Binária Túlio Toffolo www.decom.ufop.br/toffolo Pesquisa em Memória Primária n Introdução - Conceitos Básicos n Pesquisa Sequencial n Pesquisa Binária n Árvores
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro Sala 110 Prédio da Computação IECE - ITA
ALGORITMOS E ESTRUTURAS DE DADOS CES-11 Prof. Paulo André Castro [email protected] Sala 110 Prédio da Computação www.comp.ita.br/~pauloac IECE - ITA MÉTODOS MAIS EFICIENTES QUE O(N 2 ) Método Quicksort Método
Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet
Aula 17 Quick Sort Universidade Federal de Santa Maria Colégio Agrícola de Frederico Westphalen Curso Superior de Tecnologia em Sistemas para Internet Prof. Bruno B. Boniati www.cafw.ufsm.br/~bruno Ordenação
Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1
Algoritmos e Estruturas de Dados I1 Prof. Eduardo 1 ORDENAÇÃO E BUSCA Ordenação: Bublesort, seleção direta e inserção direta. Busca: linear e binária 1 - ORDENAÇÃO (CLASSIFICAÇÃO) DE DADOS Em diversas
Estruturas de Dados Aula 15: Árvores 17/05/2011
Estruturas de Dados Aula 15: Árvores 17/05/2011 Fontes Bibliográficas Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo
UNIVERSIDADE DA BEIRA INTERIOR
UNIVERSIDADE DA BEIRA INTERIOR Programação II 1º Semestre Frequência 2 Resolução 07/01/2019 1. [1,25 val] - Análise de Complexidade dos Algoritmos Considere o seguinte bloco de código em linguagem C: for
Medida do Tempo de Execução de um Programa. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Medida do Tempo de Execução de um Programa David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo
INF111 Programação II Aulas 11, 12, 13 Ordenação
INF Programação II Aulas,, Ordenação Departamento de Informática UFV Ordenação A ordenação é o processo de organizar um conunto (vetor) de n obetos ou registros segundo uma determinada ordem crescente
Computadores Digitais 2. Prof. Rodrigo de Souza Couto
Computadores Digitais 2 Linguagens de Programação DEL-Poli/UFRJ Prof. Miguel Campista Tópicos Listas Encadeadas Introdução às listas encadeadas Manipulação de elementos Implementações recursivas Listas
Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4
Universidade Federal de Rondônia Técnicas de Desenvolvimento de Programas Lista 4 WHILE 1. Faça um comando while equivalente ao descrito abaixo (que realize o mesmo tipo de procedimento e obtenha o mesmo
Projeto e Análise de Algoritmos
Projeto e Análise de Algoritmos Aula 09 Algoritmos de Ordenação Edirlei Soares de Lima Ordenação Problema: Entrada: conjunto de itens a 1, a 2,..., a n ; Saída: conjunto de itens
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i<n; i++) { e = x[i]; s = i; f = (s-1)/2;
heapsort (int *x, int n) { int i, e, s, f, aux; /*fase de pré-processamento - cria heap inicial*/ for (i=1; i0 && x[f]
LISTA DE EXERCÍCIOS - ro. 04
USP ICMC SSC SSC0100 - Introdução à Ciência da Computação I (Prática) Professor responsável: Fernando Santos Osório Semestre: 2009/1 Horário: Terça 14h20 (Turma A2) E-mail: fosorio.at. icmc.usp.br fosorio.at.
Limite assintótico para a ordenação, Ordenação em tempo linear
Algoritmos e Estruturas de Dados I Limite assintótico para a ordenação, Ordenação em tempo linear Prof. Jesús P. Mena-Chalco [email protected] 1Q-2017 1 Ordenação Ordenar corresponde ao processo
UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS
ESTUDO DE CASO I Uma das operações oferecidas pelos sistemas bancários para seus clientes é a emissão de extratos da conta corrente ou do cartão de crédito. Esses relatórios permitem que o cliente possa
Listas Encadeadas. David Menotti Algoritmos e Estruturas de Dados II DInf UFPR
Listas Encadeadas David Menotti Algoritmos e Estruturas de Dados II DInf UFPR Listas Encadeadas Características: Tamanho da lista não é pré-definido Cada elemento guarda quem é o próximo Elementos não
ALGORITMOS DE ORDENAÇÃO RECURSIVOS
1/14 ALGORITMOS DE ORDENAÇÃO RECURSIVOS Ordenação rápida ( Quicksort ) 2/14 Ordenação rápida ( Quicksort ) Ideia - Baseia-se num princípio muito simples que, quando aplicado recursivamente, acaba por ordenar
Aula 18 Algoritmos básicos de busca e classificação
Aula 18 Algoritmos básicos de busca e classificação Dentre os vários algoritmos fundamentais, os algoritmos de busca em tabelas e classificação de tabelas estão entre os mais usados. Considere por exemplo
Os métodos de ordenação que ordenam os elementos in situ podem ser classificados em três principais categorias:
ORDENAÇÃO A atividade de ordenação é o processo de rearranjo de um certo conjunto de objetos de acordo com um critério (ordem) específico. O objetivo da ordenação é facilitar a localização dos membros
Introdução Métodos de Busca Parte 1
Introdução Métodos de Busca Parte 1 SCC-201 Introdução à Ciência da Computação II Rosane Minghim 2009 Importância em estudar busca Busca é uma tarefa muito comum em computação? Vários métodos e estruturas
Pesquisa Linear. Adriano J. Holanda 15/3/2016
Pesquisa Linear Adriano J. Holanda 15/3/2016 Busca Linear em memória principal Introdução O dados estarão sempre armazenados na memória principal (DRAM 1 ): não há necessidade de acesso à memória secundária
INF 1007 Programação II
INF 1007 Programação II Aula 05 Cadeias de Caracteres Edirlei Soares de Lima Caracteres Caracteres são representados através de códigos numéricos. Tabela de códigos: Define correspondência
Programação: Vetores
Programação de Computadores I Aula 09 Programação: Vetores José Romildo Malaquias Departamento de Computação Universidade Federal de Ouro Preto 2011-1 1/62 Motivação Problema Faça um programa que leia
Métodos Computacionais. Strings (Vetor de Caracteres)
Métodos Computacionais Strings (Vetor de Caracteres) Em C, o tipo char : Caracteres é usado para representar caracteres pode armazenar valores inteiros (em 1 byte), representando assim, 256 valores distintos
UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO CENTRO UNIVERSITÁRIO NORTE DO ESPÍRITO SANTO
Disciplina: Estrutura de Dados II Turma: 4EC/5CC Data: 13/11/15 Nota: Professor: Renato E. N. de Moraes Semestre: 2015-2 Valor: 0,0 pts Aluno: Lista de exercícios 04 1. O que é a eficiência assintótica
Análise e Complexidade de Algoritmos
Análise e Complexidade de Algoritmos Métodos de Ordenação - seleção e inserção - seleção e troca (bubble sort) - merge e quick sort - radix - hashing Prof. Rodrigo Rocha [email protected] http://www.bolinhabolinha.com
BCC202 - Estrutura de Dados I
BCC202 - Estrutura de Dados I Aula 12: Ordenação: Bubble, Selection e Insertion Sort Reinaldo Fortes Universidade Federal de Ouro Preto, UFOP Departamento de Computação, DECOM Website: www.decom.ufop.br/reifortes
Aula 15: Pesquisa em Memória Primária. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Aula 15: Pesquisa em Memória Primária Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Pesquisa em Memória Primária Introdução - Conceitos Básicos Pesquisa Sequencial Pesquisa Binária Árvores de
Pesquisa e Ordenação
Pesquisa e Ordenação SC121 - Introdução à Programação ICMC - USP - São Carlos Maio de 2009 Algoritmo de Procura Algoritmo de Procura O problema de procurar, pesquisar alguma informação numa tabela ou num
INF1007: Programação 2 7 Busca em Vetores. 01/04/2014 (c) Dept. Informática - PUC-Rio 1
INF1007: Programação 2 7 Busca em Vetores 01/04/2014 (c) Dept. Informática - PUC-Rio 1 Tópicos Principais Busca em vetor Busca linear Busca binária 01/04/2014 (c) Dept. Informática - PUC-Rio 2 Busca em
Algoritmos de Ordenação
Algoritmos de Ordenação! Problema: encontrar um número de telefone em uma lista telefônica! simplificado pelo fato dos nomes estarem em ordem alfabética! e se estivesse sem uma ordem?! Problema: busca
Medida do Tempo de Execução de um Programa. Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP
Medida do Tempo de Execução de um Programa Bruno Hott Algoritmos e Estruturas de Dados I DECSI UFOP Medida do Tempo de Execução de um Programa O projeto de algoritmos é fortemente influenciado pelo estudo
Listas Lineares. Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1
Listas Lineares Elerson R. S. Santos [email protected] Livro Projeto de Algoritmos Nívio Ziviani Capítulo 3 Seção 3.1 http://www2.dcc.ufmg.br/livros/algoritmos/ Listas Lineares Uma das formas mais simples
INF 1620 P3-02/07/02 Questão 1 Nome:
INF 1620 P3-02/07/02 Questão 1 Considere um arquivo texto que contém os nomes e as notas dos alunos de uma disciplina. As informações de cada aluno ocupam duas linhas do arquivo: a primeira linha contém
ESTRUTURA DE DADOS LISTAS LINEARES
ESTRUTURA DE DADOS LISTAS LINEARES Prof. Dr. Daniel Caetano 2014-2 Objetivos Compreender as listas sequenciais Implementar uma Lista Sequencial com Vetor Compreender o uso de listas sequenciais Material
INF 1620 P2-14/10/05 Questão 1 Nome:
INF 1620 P2-14/10/05 Questão 1 Considere um cadastro de produtos de um estoque, com as seguintes informações para cada produto: Código de identificação do produto: representado por um valor inteiro Nome
Fontes Bibliográficas. Estruturas de Dados Aula 15: Árvores. Livros:
Fontes Bibliográficas Estruturas de Dados Aula 15: Árvores Livros: Introdução a Estruturas de Dados (Celes, Cerqueira e Rangel): Capítulo 13; Projeto de Algoritmos (Nivio Ziviani): Capítulo 5; Estruturas
