Академический Документы
Профессиональный Документы
Культура Документы
ESTRUTURA DE DADOS
Aula 3 - Vetores Ordenados,
Busca Binária e Big O
Dia Aula
Introdução a Linguagem
17/ago
de Programação Java
Vetores Ordenados
É um vetor cujo os itens estão organizados de forma ascendente ou
descendente de valores-chave.
Exemplo:
3
3
5
5
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 50 46 35 13 90 85 32
0 1 2 3 4 5 6 7
compara
10
10
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 50 46 35 13 90 85 32
0 1 2 3 4 5 6 7
não troca
10
11
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 50 46 35 13 90 85 32
0 1 2 3 4 5 6 7
compara
10
12
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 50 35 13 90 85 32
0 1 2 3 4 5 6 7
troca
10
13
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 50 35 13 90 85 32
0 1 2 3 4 5 6 7
compara
10
14
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 50 13 90 85 32
0 1 2 3 4 5 6 7
troca
10
15
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 50 13 90 85 32
0 1 2 3 4 5 6 7
compara
10
16
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 90 85 32
0 1 2 3 4 5 6 7
troca
10
17
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 90 85 32
0 1 2 3 4 5 6 7
compara
10
18
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 90 85 32
0 1 2 3 4 5 6 7
não troca
10
19
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 90 85 32
0 1 2 3 4 5 6 7
compara
10
20
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 85 90 32
0 1 2 3 4 5 6 7
troca
10
21
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 85 90 32
0 1 2 3 4 5 6 7
compara
10
22
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 85 32 90
0 1 2 3 4 5 6 7
troca
Após essa primeira varredura, o maior elemento encontra-se alocado
em sua posição definitiva (90 no final).
10
23
BubbleSort
Ordenação por flutuação (por “bolha”)
vetor 21 46 35 13 50 85 32 90
0 1 2 3 4 5 6 7
troca
Logo, a ordenação pode continuar no restante da lista sem considerar o
último elemento, portanto, são necessárias n-1 varreduras, pois cada
varredura leva um elemento a sua posição definitiva. 11
24
Vídeo BubbleSort
Algoritmo BubbleSort
13
26
Função BubbleSrt
14
27
Método BubbleSrt
15
28
Vantagens:
Desvantagens:
16
29
17
30
Pesquisa linear
Busca linear
32
20
33
Exemplo:
Se a variável chave = 30
7 itens
Em 4 passos o laço retorna 3
2 15 17 30 41 52 105 (chave no meio do vetor)
CASO MÉDIO
0 1 2 3 4 5 6
21
34
Exemplo:
Se a variável chave = 20
7 itens
Em 4 passos o laço retorna -1
2 15 17 30 41 52 105 (chave não encontrada)
CASO MÉDIO
0 1 2 3 4 5 6
22
35
Exemplo:
Se a variável chave = 2
7 itens
Em 1 passo o laço retorna 0
2 15 17 30 41 52 105 (chave no início do vetor)
MELHOR CASO
0 1 2 3 4 5 6
23
36
Exemplo:
Se a variável chave = 110
7 itens Em 7 passos o laço retorna -1
(chave maior que o ultimo
2 15 17 30 41 52 105 elemento do vetor)
0 1 2 3 4 5 6 PIOR CASO
24
37
Pesquisa Binária
Busca Binária
38
Exemplo: Se chave = 30
7 itens
public int buscabinaria (long
2 15 17 30 41 52 105 chave) {
int baixo = 0;
0 1 2 3 4 5 6 int alto = n-1;
baixo int meio;
meio alto
while (baixo <= alto) {
meio = (baixo+alto)/2;
30 if ( v[meio] == chave)
3 return meio;
if ( v[meio] < chave )
meio baixo = meio+1;
else
alto = meio-1;
Em 1 passo do laço retornou 3 }
return -1;
MELHOR CASO
}
A chave esta no meio do vetor
27
40
Exemplo: Se chave = 15
7 itens
public int buscabinaria (long
2 15 17 30 41 52 105 chave) {
int baixo = 0;
0 1 2 3 4 5 6 int alto = n-1;
baixo meio alto int meio;
while (baixo <= alto) {
2 15 17 meio = (baixo+alto)/2;
0 1 2 if ( v[meio] == chave)
return meio;
baixo alto if ( v[meio] < chave )
baixo = meio+1;
2 15 17 else
0 1 2 alto = meio-1;
}
baixo meio alto return -1;
15 Em 2 passos do laço }
1 retornou 1
meio
CASO MÉDIO 28
41
42
44
Comparação
Busca Binária versus Sequencial
32
45
Notação Big O
Informa como a
velocidade de um
algoritmo está
relacionada com o
numero de itens a ser
avaliado.
46
Grafico Big O
Gráfico: Demonstra como tempos de execução são afetados pelo numero de itens 35
48
Textos de Apoio
Para que você possa melhorar seus estudos, consulte também os
seguintes sites:
36
49
Vídeo Aulas
Para que você possa melhorar seus estudos, consulte também as vídeos
aulas:
37
50
Questionários
38
51
Fim Aula 3
39
52