Upload
phamkien
View
214
Download
0
Embed Size (px)
Citation preview
Algoritmos de Ordenação
• São algoritmos que organizam uma sequência
(por exemplo, os elementos de um vetor) em
ordem crescente ou decrescente.
• Exemplo com um vetor de 6 elementos:
• Sem ordenação: [3, 5, 3, 2, 1, 1]
• Ordenado: [1, 1, 2, 3, 3, 5]
Algoritmos de Ordenação
• Existem várias técnicas diferentes:
- separar em 4 montes diferentes, cada um com
cartas de um naipe, e depois ordenar cada um
separadamente e juntar;
Algoritmos de Ordenação
• Existem várias técnicas diferentes:
- separar em 4 montes diferentes, cada um com
cartas de um naipe, e depois ordenar cada um
separadamente e juntar;
- procurar as menores cartas do baralho (os
ases) e colocar na mesa; depois procurar as
próximas menores (as cartas com valor 2) e
colocar na mesa; e assim por diante.
Algoritmos de Ordenação
• Existem várias técnicas diferentes:
- separar em 4 montes diferentes, cada um com
cartas de um naipe, e depois ordenar cada um
separadamente e juntar;
- procurar as menores cartas do baralho (os
ases) e colocar na mesa; depois procurar as
próximas menores (as cartas com valor 2) e
colocar na mesa; e assim por diante.
- embaralhar o baralho e torcer para que fique
ordenado.
Algoritmos de Ordenação
• Claramente, algumas técnicas são mais efetivas
que outras (embaralhar até que fique ordenado
pode levar um tempo...)
Algoritmos de Ordenação
• Claramente, algumas técnicas são mais efetivas
que outras (embaralhar até que fique ordenado
pode levar um tempo...)
• Assim também são os algoritmos de ordenação:
• Existem diversos algoritmos de ordenação:
alguns mais efetivos, outros mais lentos, alguns
mais complexos de se implementar e outros mais
simples.
• É um dos algoritmos dos mais simples de se implementar
• Funciona como o segundo método mencionado para
ordenar um baralho:
• Percorre o vetor pela primeira vez
• Seleciona o menor elemento
• Coloca na posição correta (1ª posição)
• Percorre o vetor pela segunda vez
• Seleciona o segundo menor elemento
• Coloca na posição correta (2ª posição)
• E assim por diante…
Selection sort
Exercícios
1 – A partir de 9 elementos inseridos pelo usuário,
apresente na tela a média e a mediana destes elementos
(lembrando que a mediana é o valor central da sequência
de elementos quando estes estão organizados em ordem
crescente).
Revisão
• Sintaxe:
• char <nome variável>[tamanho];
• Exemplos:
• char cadeia[10];
• char nome[6] = “Maria”;
• char nome[] = “Maria”;
Cadeia de Caracteres
Revisão
• String.h:
• É uma biblioteca disponível para linguagem C que fornece funções
para manipulação de cadeias de caracteres (strings);
• As funções mais utilizadas são: strlen(), strcpy(), strcmp() e
strcat().
Cadeia de Caracteres
Revisão
1. Leia uma string de 10 caracteres. Se a primeira letra for maior
que a última, imprima o nome ao contrário.
2. Leia duas strings de 10 caracteres. Concatene a maior no final
da menor e imprima o resultado.
Cadeia de Caracteres – Exercícios
Revisão – Matrizes
• Sintaxe:
• <tipo do dado> <nome da matriz> [linhas][colunas]
• Exemplos de declaração:
• int matriz[10][10]
• Cria uma matriz 10x10 de inteiros;
• float matriz[5][3]
• Cria uma matriz 5x3 de reais;
Revisão – Matrizes
• A leitura de uma matriz é feita com dois laços for, um para
o controle da linha e outro para o controle da coluna.
Revisão – Matrizes
1. Leia uma matriz de 3 dimensões de inteiros e imprima:
1. A soma dos valores nas linhas par.
2. A soma dos valores nas colunas ímpar.
3. A soma dos valores da primeira linha com os da primeira coluna,
excluindo valores repetidos.
Revisão – Funções
<tipo de retorno> <nomefuncao>(<lista de parametros>)
{
<variáveis locais>;
<comandos>;
return <valor de retorno>;
}
Revisão – Procedimentos
• Procedimento é uma declaração de função com tipo de
retorno vazio (void) e sem retorno de valor.
void <nomeprocedimento>(<lista de parametros>)
{
<variáveis locais>;
<comandos>;
}
Revisão – Funções
1. Faça uma função que encontre o maior elemento de
um vetor.
2. Faça um procedimento para imprimir apenas os
elementos de um vetor maiores que um inteiro n. O
inteiro n deve ser um parâmetro.