Bubble, Selection e Insertion Sort - DECOM-UFOP

Propaganda
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
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
Email: [email protected]
Material elaborado com base nos slides do Prof. Túlio Toffolo (curso de 2013/01).
2013/02
Exercícios
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(2)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(3)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
O que é um método de ordenação?
Ordenar: processo de rearranjar um conjunto de objetos
em uma ordem ascendente ou descendente.
A ordenação visa facilitar a recuperação posterior de itens do
conjunto ordenado.
Dificuldade de se utilizar um catálogo telefônico se os nomes
das pessoas não estivessem listados em ordem alfabética.
Em ciência da computação um método de ordenação coloca
os elementos de uma dada sequência em uma certa ordem,
ou seja, efetua sua ordenação completa ou parcial.
As ordens mais usadas são a numérica e a lexicográfica.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(4)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
Notação
Os métodos trabalham sobre os registros de um arquivo.
Cada registro possui uma chave utilizada para controlar a
ordenação.
Podem existir outros componentes em um registro.
Estrutura de um registro:
1
typedef int TChave ;
2
3
4
5
6
typedef struct {
TChave Chave ;
/* outros componentes */
} TItem ;
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(5)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
Características
Qualquer tipo de chave sobre o qual exista uma regra de
ordenação bem-definida pode ser utilizado.
Um método de ordenação é estável se a ordem relativa dos
itens com chaves iguais não se altera durante a ordenação.
Alguns dos métodos mais eficientes não são estáveis.
A estabilidade pode ser forçada quando o método é
não-estável.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(6)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
Características
Os métodos de ordenação podem ser classificados como:
Ordenação Interna: o arquivo a ser ordenado cabe todo na
memória principal.
Qualquer registro pode ser imediatamente acessado.
Ordenação Externa: o arquivo a ser ordenado não cabe todo
na memória principal.
Registros são acessados seqüencialmente ou em blocos.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(7)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
Características
A maioria dos métodos de ordenação é baseada em
comparações das chaves.
Existem métodos de ordenação que utilizam o princípio da
distribuição.
Exemplo: ordenar um baralho com 52 cartas, pelo valor da
carta e pelo nipe.
Primeiro separe as cartas em treze montes (valores das cartas).
Em seguida, colete os montes na ordem desejada.
Distribua cada monte em quatro montes (naipes das cartas).
Colete os montes na ordem desejada.
Qual é o custo deste algoritmo?
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(8)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
Critérios de análise
Sendo n o número registros no arquivo, as medidas de
complexidade relevantes são:
Número de comparações C(n) entre chaves.
Número de movimentações M(n) de registros do arquivo.
O uso econômico da memória disponível é um requisito
primordial na ordenação interna.
Métodos de ordenação in situ são os preferidos.
Métodos que utilizam listas encadeadas não são muito
utilizados.
Métodos que fazem cópias dos itens a serem ordenados
possuem menor importância.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(9)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
Ordenação Interna por Comparação
Métodos simples:
Adequados para pequenos arquivos.
Requerem O(n 2 ) comparações.
Produzem programas pequenos.
Métodos eficientes:
Adequados para arquivos maiores.
Requerem O(n l og n) comparações.
Usam menos comparações.
As comparações são mais complexas nos detalhes.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(10)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
O melhor algoritmo
Atenção
Não existe um método de ordenação considerado
universalmente superior a todos os outros.
É necessário analisar o problema e, com base nas
características dos dados, decidir qual método melhor se
aplica à ele.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(11)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conceitos Básicos de Ordenação
O que estudaremos?
Neste curso estudaremos apenas algoritmos de ordenação
interna e que utilizam o princípio da comparação.
Nesta aula:
BubbleSort.
SelectionSort.
InsertionSort.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(12)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(13)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método da Bolha
Funcionamento
Os elementos vão “borbulhando” a cada iteração do método
até a posição correta para ordenação da lista.
Como os elementos são trocados (borbulhados)
frequentemente, há um alto custo com troca de elementos.
Animação
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(14)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método da Bolha
Algoritmo
1
2
3
4
5
6
7
8
9
10
11
12
13
void Bolha ( TItem * v , int n ) {
int i , j ;
TItem aux ;
for ( i = 0; i < n -1; i ++) {
for ( j = 1; j < n - i ; j ++) {
if ( v [ j ]. Chave < v [j -1]. Chave ) {
aux = v [ j ];
v [ j ] = v [j -1];
v [j -1] = aux ;
}
}
}
}
Animação
BCC202 - Estrutura de Dados I
Vídeo
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(15)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método da Bolha
Análise de Complexidade
Comparações (C(n)):
C (n) =
n−2
X
(n − i − 1) =
i=0
i=0
= n(n − 1) −
=
n−2
X
n−
n−2
X
i−
i=0
n−2
X
1
i=0
(0 + n − 2)(n − 1)
− (n − 1)
2
n2 − n
= O(n2 )
2
Movimentações (M(n)):
M(n) = 3C (n) = O(n2 )
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(16)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método da Bolha
Características
Vantagens
Algoritmo simples.
Algoritmo estável.
Desvantagens
O fato de o arquivo já estar ordenado não ajuda a reduzir o
número de comparações (o custo continua quadrático), porém
o número de movimentações cai para zero.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(17)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método da Bolha
Melhoria no Algoritmo
Original:
1
2
3
4
5
6
7
8
9
10
11
12
13
Melhorado:
void Bolha ( TItem * v , int n ) {
int i , j ;
TItem aux ;
for ( i = 0; i < n -1; i ++) {
for ( j = 1; j < n - i ; j ++) {
if ( v [ j ]. Chave < v [j -1]. Chave ) {
aux = v [ j ];
v [ j ] = v [j -1];
v [j -1] = aux ;
}
}
}
}
BCC202 - Estrutura de Dados I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Bolha ( TItem * v , int n ) {
int i , j , troca ;
TItem aux ;
for ( i = 0; i < n -1; i ++) {
troca = 0;
for ( j = 1; j < n - i ; j ++) {
if ( v [ j ]. Chave < v [j -1]. Chave ) {
aux = v [ j ];
v [ j ] = v [j -1];
v [j -1] = aux ;
troca ++;
}
}
if ( troca == 0) break ;
}
}
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(18)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método da Bolha
Melhoria no Algoritmo
Original:
1
2
3
4
5
6
7
8
9
10
11
12
13
Melhorado:
void Bolha ( TItem * v , int n ) {
int i , j ;
TItem aux ;
for ( i = 0; i < n -1; i ++) {
for ( j = 1; j < n - i ; j ++) {
if ( v [ j ]. Chave < v [j -1]. Chave ) {
aux = v [ j ];
v [ j ] = v [j -1];
v [j -1] = aux ;
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
void Bolha ( TItem * v , int n ) {
int i , j , troca ;
TItem aux ;
for ( i = 0; i < n -1; i ++) {
troca = 0;
for ( j = 1; j < n - i ; j ++) {
if ( v [ j ]. Chave < v [j -1]. Chave ) {
aux = v [ j ];
v [ j ] = v [j -1];
v [j -1] = aux ;
troca ++;
}
}
if ( troca == 0) break ;
}
}
Melhoria
Interrompe o processo quando não ocorrem mais trocas.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(18)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(19)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Seleção
Funcionamento
Seleciona do n-ésimo menor (ou maior) elemento da lista.
Troca do n-ésimo menor (ou maior) elemento com a n-ésima
posição da lista.
É realizada apenas uma única troca a cada iteração.
Animação
BCC202 - Estrutura de Dados I
Vídeo
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(20)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Seleção
Algoritmo
1
2
3
4
5
6
7
8
9
10
11
12
13
void Selecao ( TItem * v , int n ) {
int i , j , Min ;
TItem aux ;
for ( i = 0; i < n - 1; i ++) {
Min = i ;
for ( j = i + 1 ; j < n ; j ++)
if ( v [ j ]. Chave < v [ Min ]. Chave )
Min = j ;
aux = v [ Min ];
v [ Min ] = v [ i ];
v [ i ] = aux ;
}
}
Animação
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(21)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Seleção
Análise de Complexidade
Comparações (C(n)):
C (n) =
n−2
X
(n − i − 1) =
i=0
i=0
= n(n − 1) −
=
n−2
X
n−
n−2
X
i−
i=0
n−2
X
1
i=0
(0 + n − 2)(n − 1)
− (n − 1)
2
n2 − n
= O(n2 )
2
Movimentações (M(n)):
M(n) = 3(n − 1) = O(n)
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(22)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Seleção
Características
Vantagens
Custo linear no tamanho da entrada para o número de
movimentos de registros.
É o algoritmo a ser utilizado para arquivos com registros
muito grandes (alto custo de movimentação).
É muito interessante para arquivos pequenos.
Desvantagens
O fato de o arquivo já estar ordenado não ajuda em nada,
pois o custo continua quadrático.
O algoritmo não é estável.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(23)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Seleção
Melhoria no Algoritmo
Original:
1
2
3
4
5
6
7
8
9
10
11
12
13
Melhorado:
void Selecao ( TItem * v , int n ) {
int i , j , Min ;
TItem aux ;
for ( i = 0; i < n - 1; i ++) {
Min = i ;
for ( j = i + 1 ; j < n ; j ++)
if ( v [ j ]. Chave < v [ Min ]. Chave )
Min = j ;
aux = v [ Min ];
v [ Min ] = v [ i ];
v [ i ] = aux ;
}
}
BCC202 - Estrutura de Dados I
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Selecao ( TItem * v , int n ) {
int i , j , Min ;
TItem aux ;
for ( i = 0; i < n - 1; i ++) {
Min = i ;
for ( j = i + 1 ; j < n ; j ++)
if ( v [ j ]. Chave < v [ Min ]. Chave )
Min = j ;
if ( i != Min ) {
aux = v [ Min ];
v [ Min ] = v [ i ];
v [ i ] = aux ;
}
}
}
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(24)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Seleção
Melhoria no Algoritmo
Original:
1
2
3
4
5
6
7
8
9
10
11
12
13
Melhorado:
void Selecao ( TItem * v , int n ) {
int i , j , Min ;
TItem aux ;
for ( i = 0; i < n - 1; i ++) {
Min = i ;
for ( j = i + 1 ; j < n ; j ++)
if ( v [ j ]. Chave < v [ Min ]. Chave )
Min = j ;
aux = v [ Min ];
v [ Min ] = v [ i ];
v [ i ] = aux ;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void Selecao ( TItem * v , int n ) {
int i , j , Min ;
TItem aux ;
for ( i = 0; i < n - 1; i ++) {
Min = i ;
for ( j = i + 1 ; j < n ; j ++)
if ( v [ j ]. Chave < v [ Min ]. Chave )
Min = j ;
if ( i != Min ) {
aux = v [ Min ];
v [ Min ] = v [ i ];
v [ i ] = aux ;
}
}
}
Melhoria
Realiza troca apenas quando é realmente necessário.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(24)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(25)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Inserção
Funcionamento
Algoritmo utilizado pelo jogador de cartas:
As cartas são ordenadas da esquerda para direita uma por uma.
O jogador escolhe a segunda carta e verifica se ela deve ficar
antes ou na posição que está.
Depois a terceira carta é classificada, deslocando-a até sua
posição correta.
O procedimento é repetido até ordenar todas as cartas.
Alto custo em remover uma carta de uma posição e colocá-la
em outra quando a representação é feita por arrays.
Animação
BCC202 - Estrutura de Dados I
Vídeo
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(26)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Inserção
Algoritmo
SEM Sentinela:
1
2
3
4
5
6
7
8
9
10
11
12
13
COM Sentinela:
void Insercao ( TItem * v , int n ) {
int i , j ;
TItem aux ;
for ( i = 1; i < n ; i ++) {
aux = v [ i ];
j = i - 1;
while ( j >= 0 && aux . Chave < v [ j ].
Chave ) {
v [ j + 1] = v [ j ];
j - -;
}
v [ j + 1] = aux ;
}
}
1
2
3
4
5
6
7
8
9
10
11
12
void Insercao ( TItem * v , int n ) {
int i , j ;
for ( i = n -2; i >= 0; i - -) {
v [ n ] = v [ i ];
j = i + 1;
while ( v [ n ]. Chave > v [ j ]. Chave ) {
v [ j - 1] = v [ j ];
j ++;
}
v [ j - 1] = v [ n ]
}
}
Animação
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(27)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Inserção
Análise de Complexidade
Comparações (C(n)):
No laço mais interno, na i -ésima iteração:
Melhor caso: C i (n) = 1.
Pior caso: C i (n) = i .
Caso médio: C i (n) =
1
i
∗ (1 + 2 + ... + i ) =
i +1
.
2
Assumindo que todas as permutações de n são igualmente
prováveis no caso médio, temos:
Melhor caso: C(n) = (1 + 1 + ... + 1) = n − 1.
Pior caso: C(n) = (1 + 2 + ... + (n − 1)) =
n2
2
− n2 .
Caso médio: C(n) = (1/2) ∗ (2 + ... + n) =
n2
4
+
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
n
4
− 12 .
(28)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Inserção
Análise de Complexidade
Movimentações (M(n)):
No laço mais interno, na i -ésima iteração:
Melhor caso: M i (n) = 0.
Pior caso: M i (n) = i .
Caso médio: M i (n) =
1
i
∗ (0 + 1 + 2 + ... + i − 1) =
i −1
.
2
Assumindo que todas as permutações de n são igualmente
prováveis no caso médio, temos:
Melhor caso: M(n) = (2 + 2 + ... + 2) = 2n − 2.
Pior caso: M(n) = ((2 + 1) + ... + (2 + n − 1)) =
Caso médio: M(n) = (1/2) ∗ (2 + 3 + ... + n) =
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
n 2 +3n−4
.
2
n 2 +n−2
.
2
(29)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Método de Inserção
Características
O número mínimo de comparações e movimentos ocorre
quando os itens estão originalmente em ordem.
O número máximo ocorre quando os itens estão originalmente
na ordem reversa.
É o método a ser utilizado quando o arquivo está “quase”
ordenado.
É um bom método quando se deseja adicionar uns poucos
itens a um arquivo ordenado, pois o custo é linear.
O algoritmo de ordenação por inserção é estável.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(30)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(31)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conclusão
Conclusão
Nesta aula tivemos o primeiro contato com algoritmos de
ordenação.
Foram vistos os algoritmos BubbleSort, SelectionSort e
InsertionSort.
Cada algoritmo possui suas características particularidades:
Não existe um método de ordenação considerado
universalmente superior a todos os outros.
É necessário analisar o problema e, com base nas características
dos dados, decidir qual método melhor se aplica à ele.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(32)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conclusão
Conclusão
Quadro comparativo dos métodos de ordenação:
Comparações
Movimentações
Algoritmo
Melhor
Melhor
O(n )
O(n)
Médio
O(n)
2
O(n )
O(n)
Espaço
Estável
In situ
O(1)
Sim
Sim
Pior
O(n 2 )
2
Selection
∗
Pior
O(n 2 )
Bubble
Insertion
Médio
2
O(n )
∗
O(1)
Não
Sim
O(1)
Sim
Sim
Existem versões estáveis.
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(33)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conclusão
Conclusão
A tarefa de ordenação é muito importante, ela é uma
necessidade básica para a solução de muitos problemas.
Próxima aula: MergeSort.
Dúvidas?
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(34)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Conteúdo
1
Introdução
Conceitos Básicos de Ordenação
2
BubbleSort
3
SelectionSort
4
InsertionSort
5
Conclusão
6
Exercícios
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(35)
Introdução
BubbleSort
SelectionSort
InsertionSort
Conclusão
Exercícios
Exercícios propostos
Exercício 01
Dada a sequência de números: 3 4 9 2 5 1 8.
Ordene em ordem crescente utilizando os três algoritmos
aprendidos em sala (BubbleSort, SelectionSort e
InsertionSort), apresentando a sequência dos números a cada
passo (Teste de Mesa).
BCC202 - Estrutura de Dados I
Aula 12: Ordenação: Bubble, Selection e Insertion Sort
(36)
Download