Ordenação em memória primária

Slides:



Advertisements
Apresentações semelhantes
UFSC-CTC-INE INE Estruturas de Dados
Advertisements

Ordenação de Dados em Memória
Aula T10 – BCC202 Listas – Parte 2 Túlio Toffolo www. decom. ufop
Matrizes Unidimensionais
Estruturas de Dados Marcio Gonçalves.
Katia S. Guimarães QUICKSORT Katia S. Guimarães
ESTRUTURA DE DADOS LES.
Linguagem de Programação IX Métodos de Ordenação
TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS ESTRUTURAS DE DADOS AVANÇADAS Aula /08/2011 Professor Leomir J. Borba-
Algoritmos de Ordenação
Algoritmos de Ordenação
Algoritmos de Ordenação
Algoritmos BUSCA E INSERÇÃO
Análise Projeto de Algoritmos
Série de Exercícios.
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 Estruturas de Dados I DECOM – UFOP
David Menotti Algoritmos e Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
David Menotti Estruturas de Dados I DECOM – UFOP
FACENS – Engenharia da Computação Lógica Computacional II
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Ordenação Facilitar e aumentar a eficiência das operações de pesquisa sobre esses dados Pode ser crescente ou decrescente A seqüência de entrada, normalmente,
Classificação e Pesquisa de Dados
Classificação (Ordenação) de dados
Algoritmos Escher.
Método de Ordenação: InsertionSort
Classificação de dados por Intercalação: MergeSort
Métodos de Classificação por Seleção
Listas Encadeadas.
Ordenação de Dados.
Algoritmos de Ordenação
Algoritmos de Ordenação
Insertion Sort.
Listas Encadeadas Raquel O. Prates, Luiz Chaimowicz, Jussara Almeida
Algoritmos de ordenação
Algoritmos e Estruturas de Dados II
Pesquisa em Memória Primária
Comparação entre os métodos de ordenação
Árvores binárias de pesquisa com balanceamento
Algoritmo de Ordenação
Desempenho, Método de Shell, Quicksort
Ordenação por inserção
Listas de Prioridades Em muitas aplicações, dados de uma coleção são acessados por ordem de prioridade A prioridade associada a um dado pode ser qualquer.
Ceça Moraes – Introdução à Programação SI1
Algoritmos de Ordenação
Árvore Binária de Busca
Módulo I Capítulo 5: Vetores
© 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice Hall. Todos os direitos reservados.slide 1 © 2011 Pearson Prentice.
Introdução à complexidade de algoritmos Luiz Gonzaga da Silveira Junior.
Capítulo VI – Variáveis Indexadas 6.1 – A necessidade de variáveis indexadas 6.2 – Vetores e matrizes 6.3 – Aplicações com vetores numéricos 6.4 – Aplicações.
Complexidade em Tempo de um Algoritmo
Como analisar um algoritmo
DCC 001 Programação de Computadores 2º Semestre de 2011
Métodos de Ordenação.
CLASSIFICAÇÃO DE DADOS
Algoritmos e Programação MC102
Aula Prática 12 Listas Encadeadas Monitoria
Classificação Ordenação de Dados
Programação II Laboratório II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo - Transparências baseadas nos originais da Prof.
Aula Prática 6 Vetores e Matrizes Monitoria
ORDENAÇÃO EM TEMPO LINEAR
Classificação (Ordenação) de dados
USP – ICMC – SSC SSC0300 2º Semestre 2015
Funcionamento Bucket sort funciona do seguinte modo: Inicialize um vetor de "baldes", inicialmente vazios. Vá para o vetor original, incluindo cada.
Classificação (Ordenação) de dados. Roteiro Contextualização e definições sobre Classificação Métodos de Classificação de Dados.
Curso Programadores de Informática
Algoritmos com matrizes e vetores
Métodos de Pesquisa e Ordenação
Transcrição da apresentação:

Ordenação em memória primária Métodos de Ordenação Ordenação em memória primária

Objetivos 7 10 7 10 Vetor desordenado V de tamanho n = 5 Ordena(V,n) Dado um vetor de tamanho n, com índices de 0 a n-1, onde cada posição possui uma chave de ordenação Um algoritmo de ordenação deve rearranjar o vetor de forma a estabeler uma ordem entre os elementos onde, para quaisquer elementos vi-1, vi  vi-1 < vi , i = 1..n-1, considerando a chave de ordenação. Vetor desordenado V de tamanho n = 5 1 2 3 4 7 10 Ordena(V,n)  Vetor ordenado: 1 2 3 4 7 10

Método da Seleção (Selection Sort) Descrição: Seleciona sempre o menor elemento remanescente do conjunto não ordenado e move este elemento para sua posição correta Algoritmo Encontrar o menor elemento e trocar com o elemento na primeira posição do vetor Encontrar o segundo menor elemento e trocar com o elemento na segunda posição do vetor e assim sucessivamente...

Método da Seleção Exemplo: {7,3,2,10,1} algoritmo seleção (int a[], int n){ Para i da primeira posição até a penúltima faca mínimo = i para j da posição seguinte a i até a ultima posição faça se (a[j] < a[mínimo] minimo =j; fim para troca(a[mínimo],a[i]); fim algoritmo Exemplo: {7,3,2,10,1} Para i =0, mínimo terminará com o valor 4, e o 1 será trocado com o 7 {1,3,2,10,7} i=1, mínimo terminará com o valor 2, e o 2 será trocado com o 3 {1,2,3,10,7} i= 2, mínimo terminará com o valor 4, e não haverá troca i=3, mínimo terminará com o valor 4, e o 7 será trocado com o 10 {1,2,3,7,10}

Método da Inserção Descrição: Considera cada elemento uma vez inserindo-o em seu lugar correto entre os elementos que já estão em ordem. (Usado para ordenar cartas de um baralho na mão do jogador.) Algoritmo: O elemento é inserido entre os ordenados movendo-se os elementos maiores que ele uma posição para a direita e posteriormente inserindo-o na posição vaga.

Método da Inserção (Insertion sort) Algoritmo insercao(int A[], int n) para j do segundo elemento até o último faça x = A[j]; i=j-1; enquanto (i >= 0 e A[i] > x) faça A[i+1]=A[i]; i = i-1; fim enquanto A[i+1]=x; fim para fim algoritmo Exemplo: {7,3,2,10,1} Para j = 1, o 7 é “empurrado” uma posição e o 3 é colocado na posição (i+1) = 0 {3,7,2,10,1} Para j =2, { 3,7} são empurrados uma posição e o 2 é colocado na posição 0 {2,3,7,10,1} Para j=3, ninguém é empurrado e o 10 é colocado na mesma posição onde estava Para j =4, {2,3,7,10} são empurrados uma posição e o 1 é inserido na posição 0: {1,2,3,7,10}

Método da bolha (bouble sort) Descrição: Consiste em percorrer o vetor trocando os elementos adjacentes caso necessário. O maior elemento vai “subir” (como um bolha) para a última posição do vetor.

Método da Bolha i j A={7,3,2,10,1} algoritmo bolha ( int a[],int n) Para i do ultimo elemento até o segundo faça para j do segundo elemento até i faça se (a[j-1]>a[j]) troca(&a[j-1],&a[j]); } Exemplo i j A={7,3,2,10,1} 4 1 {3,7,2,10,1} 2 {3,2,7,10,1} 3 {3,2,7,1,10} {2,3,7,1,10} {2,3,1,7,10} {2,1,3,7,10} {1,2,3,7,10}

Exercício Usar a função abaixo para gerar vetores aleatórios: Implementar os métodos inserção, seleção e bolha em C e fazer uma avaliação de desempenho dos mesmos Usar a função abaixo para gerar vetores aleatórios: #include <math.h> geravetor(int a[], int N){ int i; srand(time(NULL)); for (i=0;i<N;i++) a[i]= (rand()%N); }

Exercícios #include<sys/timeb.h> Usar a função ftime para medir o tempo. Exemplo: #include<sys/timeb.h> struct timeb ini, fim; ftime(&ini); // obtem o tempo no inicio Ordena(v,n); ftime(&fim); // obtem o tempo no final // Computa o tempo gasto e imprime printf("tempo gasto na ordenacao: %f segundos \n", ((double) fim.time + ((double) fim.millitm * 0.001)) - ((double) ini.time + ((double) ini.millitm * 0.001)));

Exercícios a) Realizar testes com vetores de tamanho Utilize um software de planilha para traçar gráficos que permitam visualizar e comporar o desempenho dos métodos.