estrutura de dados -...
TRANSCRIPT
![Page 1: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/1.jpg)
Estrutura de DadosEstrutura de DadosEstrutura de DadosEstrutura de DadosCarlos Eduardo Batista
Centro de Informática - [email protected]
![Page 2: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/2.jpg)
� Métodos de pesquisa e classificação de dados (continuação)
Estruturas de DadosEstruturas de Dados2
![Page 3: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/3.jpg)
� Algoritmo de busca◦ Recebe como argumento o índice para a busca e o
conjunto no qual a busca será realizada
� Conjunto de dados◦ Um vetor de registros◦ Uma lista encadeada◦ Uma árvore
� Busca
Pesquisa e classificação de dadosPesquisa e classificação de dados
◦ Sequencial◦ Binária◦ Busca por interpolação, em árvores e hashing
� Busca deve ser realizada com menor custo◦ Utilizar menor quantidade de recursos possíveis
3
![Page 4: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/4.jpg)
� Busca sequencial◦ Forma mais simples
◦ Aplica-se a vetores, listas encadeadas e estruturas que possuem sequência de ordenação
◦ São consultados todos os registros até que se encontre o que se busca
Pesquisa e classificação de dadosPesquisa e classificação de dados4
234 567 353 276 958 598 988 544
Encontrar 988 em um vetor com 8 elementos inteiros
Iteração 1... 7ª. Iteração!
![Page 5: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/5.jpg)
int A[] = { 234, 567, 353, 276, 958, 598, 988, 544 } ;int x = 988;for (i=0; i<8; i++) {
if (A[i] == x)return(i); /*chave encontrada*/
}return(-1); /* chave não encontrada */
int A[] = { 234, 567, 353, 276, 958, 598, 988, 544 };
A
Pesquisa e classificação de dadosPesquisa e classificação de dados5
int A[] = { 234, 567, 353, 276, 958, 598, 988, 544 };int x = 988;int i;int n = 8;A[n] = 988;for (i=0; x!=A[i]; i++)
if (i < n) return(i); /*chave encontrada*/else return(-1); /*chave não encontrada*/
B
![Page 6: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/6.jpg)
� Busca sequencial◦ Tamanho fixo do vetor � Desperdício de memória pode ocorrer
◦ Alternativa: usar lista encadeada
� Complexidade◦ Pesquisa com sucesso � melhor caso: O(1)� pior caso: O(n)
Pesquisa e classificação de dadosPesquisa e classificação de dados
� pior caso: O(n) � caso médio: O((n+1) / 2)
◦ Pesquisa sem sucesso � O(n)
6
![Page 7: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/7.jpg)
� Busca sequencial◦ Em estrutura ordenada (pelos valores das chaves a serem buscadas)
◦ Melhor eficiência� Pior caso (não encontrada a chave): O(n)
� Caso médio: O(n/2)
◦ Tabela de índices
Pesquisa e classificação de dadosPesquisa e classificação de dados7
![Page 8: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/8.jpg)
234
697
987
1000
100
110
234
345
697
987
Chave Registro
Pesquisa e classificação de dadosPesquisa e classificação de dados8
1000 987
999
1000
![Page 9: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/9.jpg)
� Busca binária◦ Se os dados estiverem ordenados em um arranjo...
◦ Arr[i] <= Arr[i+1] (ordem crescente)
◦ Arr[i] >= Arr[i+1] (ordem decrescente)
◦ Parte-se do elemento ‘do meio’ do arranjo para realizar a busca
Pesquisa e classificação de dadosPesquisa e classificação de dados
� Se igual, busca bem sucedida
� Se maior ou menor, realizar busca na metade correspondente (dependendo se ordenado crescente ou decrescentemente)
9
![Page 10: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/10.jpg)
123 133 222 245 321 334 411 544
133 < 245
Buscando 133...
Pesquisa e classificação de dadosPesquisa e classificação de dados10
123 133 222 245 321 334 411 544
133 = 133Elemento encontrado!
![Page 11: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/11.jpg)
� Busca binária◦ Complexidade
� O(log n) – cada comparação reduz o número de possíveis candidatos por um fator de 2
◦ Eficiente e simples
◦ Porém...� Nem todo arranjo está ordenado
� Faz uso do fato que os índices são inteiros consecutivos
Pesquisa e classificação de dadosPesquisa e classificação de dados
� Faz uso do fato que os índices são inteiros consecutivos ◦ Não se aplica a todos os tipos de estruturas
� Pode-se combinar com busca sequencial (organização da tabela secundária)
11
![Page 12: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/12.jpg)
struct registry { int id; /* chave do registro */ ... /* outros campos do registro */
}
Pesquisa e classificação de dadosPesquisa e classificação de dados12
typedef struct registry Registry;
![Page 13: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/13.jpg)
/* tamanho do vetor = n *//* função retorna posição do registro no vetor v,
ou -1 se não encontrou */int binsearch(Registry *v, int id) {
if (n <= 0)return -1;
int esq = 0;int dir = n - 1;int i;do {
i = (esq + dir) / 2;if (id > v[i].id)
Pesquisa e classificação de dadosPesquisa e classificação de dados13
if (id > v[i].id)esq = i + 1;
elsedir = i - 1;
} while ((id != v[i].id) && (esq <= dir));if (id == v[i].id)
return i;return -1;
}
![Page 14: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/14.jpg)
� Ordenação (Classificação)◦ Rearranjar um conjunto de objetos
� Ordem ascendente ou descendente
◦ Ordenação interna� Tudo na memória principal� Seleção� Inserção� QuickSort� MergeSort
Pesquisa e classificação de dadosPesquisa e classificação de dados
� MergeSort
◦ Ordenação externa� QuickSort externo� Intercalação balanceada
14
![Page 15: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/15.jpg)
� Ordenação◦ Facilitar a recuperação de itens do conjunto ordenado
◦ Registros e chaves� Regra de ordenação
� Comparação de chaves
◦ Ordenação por distribuição
Pesquisa e classificação de dadosPesquisa e classificação de dados15
![Page 16: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/16.jpg)
� Ordenação interna� Complexidade
◦ Número de comparação entre chaves◦ Número de movimentações entre itens
� Usar memória com parcimônia sempre� Métodos simples
◦ Pequeno volume de informações◦ O(n2)
Pesquisa e classificação de dadosPesquisa e classificação de dados
◦ O(n )
� Métodos eficientes◦ Menos comparações◦ O(n log n)
16
![Page 17: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/17.jpg)
� Ordenação por seleção◦ Algoritmo simples
� Seleciona-se o menor item do vetor
� Troca-se com o item da primeira posição do vetor
� Repetir com n-1 restantes, depois n-2...◦ Até que reste apenas um elemento
Pesquisa e classificação de dadosPesquisa e classificação de dados
◦ Até que reste apenas um elemento
� (n2/2) – (n/2) comparações
� 3(n-1) movimentações de registro
17
![Page 18: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/18.jpg)
Ordenação por seleção
Pesquisa e classificação de dadosPesquisa e classificação de dados18
![Page 19: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/19.jpg)
typedef int Indice;typedef Item Vetor[MaxTam + 1];Vetor A;
void selecao(Item *A, Indice *n) {Indice i, j, Min;Item x;for (i = 1; i <= *n - 1; i++) {
Min = i;for (j = i + 1; j <= *n; j++)
Pesquisa e classificação de dadosPesquisa e classificação de dados19
if (A[j].Chave < A[Min].Chave)Min = j;
x = A[Min];A[Min] = A[i];A[i] = x;
}}
![Page 20: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/20.jpg)
� Ordenação por seleção◦ Utilizado para ordenar conjuntos com registro grandes ou poucos registros
◦ Ordenação prévia (ou semi-ordenação) não ajuda em nada
◦ Algoritmo não é estável
Pesquisa e classificação de dadosPesquisa e classificação de dados20
![Page 21: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/21.jpg)
� Ordenação por inserção
� Em cada passo a partir do 2º (i=2), faça◦ Selecione o i-ésimo item da sequência fonte
◦ Coloque-o no lugar correto (de acordo com o critério de ordenação) na sequência destino
� O processo de ordenação termina quando◦ Um item com chave menor que o item em
consideração é encontrado
Pesquisa e classificação de dadosPesquisa e classificação de dados
consideração é encontrado
◦ O final da sequência destino é atingido ‘a esquerda
� Usa-se um sentinela na posição 0 do vetor
21
![Page 22: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/22.jpg)
Pesquisa e classificação de dadosPesquisa e classificação de dados22
![Page 23: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/23.jpg)
void insercao(Item *A, Indice *n) {Indice i, j;Item x;for (i = 2; i <= *n; i++) {
x = A[i];j = i - 1;A[0] = x; /* sentinela */while (x.Chave < A[j].Chave) {
A[j + 1] = A[j];j -- ;
23
j -- ;}A[j + 1] = x;
}}
![Page 24: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/24.jpg)
� Ordenação por inserção◦ O número mínimo de comparações ocorre quando os registros já estão ordenados
◦ O número máximo de comparações ocorre quando os registros estão na ordem reversa
◦ Método a ser utilizado quando o conjunto está “quase” ordenado
Algoritmo estável
Pesquisa e classificação de dadosPesquisa e classificação de dados
� Algoritmo estável
24
![Page 25: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/25.jpg)
� Quicksort
� Mais rápido para um grande leque de possibilidades
� Dividir para conquistar◦ Problemas menores são ordenados separadamente,
resultado é combinado
� Vetor é rearranjado a partir de um pivô
Pesquisa e classificação de dadosPesquisa e classificação de dados
� Processo de partição◦ A parte esquerda com chaves menores ou iguais
◦ ao pivô.
◦ A parte direita com chaves maiores ou iguais ao pivô.
25
![Page 26: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/26.jpg)
� Particionamento◦ Escolha do pivô (x)
◦ Percorre-se o vetor a partir da esquerda até que o valor seja maior ou igual ao pivô � V[i] >= x
◦ Percorre-se o vetor a partir da direita até que o valor seja menor igual ao pivô
V[j] <= x
Pesquisa e classificação de dadosPesquisa e classificação de dados
� V[j] <= x
◦ Troca-se V[i] e V[j]
◦ Continuar o processo até que i e j se cruzem
26
![Page 27: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/27.jpg)
� Particionamento
� Vetor V estará particionado de forma que◦ V[esq], V[esq+1]..., V[j] são menores ou iguais ao pivô (x)
◦ V[i], V[i+1],..., V[dir] são maiores ou iguais ao pivô (x)
Pesquisa e classificação de dadosPesquisa e classificação de dados27
![Page 28: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/28.jpg)
Pesquisa e classificação de dadosPesquisa e classificação de dados28
![Page 29: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/29.jpg)
typedef struct {Indice Esq, Dir;
} TipoItem;void QuickSort_NaoRec(Item *A, Indice *n) {
TipoPilha Pilha;Indice Esq, Dir, i, j;TipoItem Item;FPvazia(Pilha);Esq = 1;Dir = *n;Item.Dir = Dir;Item.Esq = Esq;Empilha(Item, Pilha);repeatif (Dir > Esq) {
Particao ( Esq, Dir , &i, &j, A);
Pesquisa e classificação de dadosPesquisa e classificação de dados29
Particao ( Esq, Dir , &i, &j, A);Item.Dir = Dir; Item.Esq = i;Empilha(Item, Pilha);Dir = j;
} else {Desempilha(Pilha, Item);Dir = Item.Dir;Esq = Item.Esq;
}}while (!Vazia(Pilha));}
![Page 30: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/30.jpg)
void particao(Indice Esq, Indice Dir, Indice *i, Indice*j, Item *A) {
Item x, w;*i = Esq;*j = Dir;x = A[(*i + *j) / 2]; /* obtem o pivo x */do {
while (x.Chave > A[*i].Chave)(*i)++;
while (x.Chave < A[*j].Chave)(*j) -- ;
Pesquisa e classificação de dadosPesquisa e classificação de dados30
(*j) -- ;if ((*i) ≤ (*j)){ w = A[*i]; A[*i] = A[*j]; A[*j] = w;
(*i)++; (*j)--;}
}while (*i <= *j);}
![Page 31: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/31.jpg)
void qordena(Indice Esq, Indice Dir, Item *A) {particao(Esq, Dir, &i, &j, A);if (Esq < j)
qordena(Esq, j, A);if (i < Dir)
qordena(i, Dir, A);}
void quicksort (Item *A, Indice *n) {
Pesquisa e classificação de dadosPesquisa e classificação de dados31
void quicksort (Item *A, Indice *n) {qordena(1, *n, A);
}
![Page 32: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/32.jpg)
Pesquisa e classificação de dadosPesquisa e classificação de dados32
![Page 33: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/33.jpg)
� Eficiente para situações genéricas
� Requer em média n log n comparações para n itens◦ Pior caso O(n2)
� Método não estável
Pesquisa e classificação de dadosPesquisa e classificação de dados33
![Page 34: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/34.jpg)
� Listas, Pilhas e Filas
Próximas aulasPróximas aulas34
![Page 35: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/35.jpg)
� Notas de Aula do Prof. Bruno B. Boniati
� Notas de Aula do Prof. João Luís Garcia Rosa
� http://www2.dcc.ufmg.br/livros/algoritmos/
ReferênciasReferências35
![Page 36: Estrutura de Dados - wiki.cbatista.netwiki.cbatista.net/lib/exe/fetch.php/ed-aula05_e_06-ordenacao.pdf · Estruturas de Dados 2. Algoritmo de busca Recebe como argumento o índice](https://reader035.vdocuments.com.br/reader035/viewer/2022071100/5fd8df8ef92e663ee65198cb/html5/thumbnails/36.jpg)
Estrutura de DadosEstrutura de DadosEstrutura de DadosEstrutura de DadosCarlos Eduardo Batista
Centro de Informática - [email protected]