Prévia do material em texto
3SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3SISTEMAS DE INFORMAÇÃO 3SISTEMAS DE INFORMAÇÃO 33 3SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3 Aula 14 Algoritmos de Ordenação: estabilidade e alg. inserção, seleção direta e bolha Profa. Ariane Machado Lima ACH2002 4SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4SISTEMAS DE INFORMAÇÃO 4SISTEMAS DE INFORMAÇÃO 44 4SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4 Motivação •Grande parte das operações de Sistemas de Informações é constituída por buscas em bases de dados. •Exemplos? 5SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 5SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 5SISTEMAS DE INFORMAÇÃO 5SISTEMAS DE INFORMAÇÃO 55 5SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 5SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 5SISTEMAS DE INFORMAÇÃO 55SISTEMAS DE INFORMAÇÃO 5 Motivação •Grande parte das operações de Sistemas de Informações é constituída por buscas em bases de dados. •Exemplos? •consultar saldo bancário, fornecendo número da conta corrente; •consultar nota no sistema Júpiter, fornecendo número USP; •consultar preço de um livro em uma loja, fornecendo seu código. 6SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 6SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 6SISTEMAS DE INFORMAÇÃO 6SISTEMAS DE INFORMAÇÃO 66 6SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 6SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 6SISTEMAS DE INFORMAÇÃO 66SISTEMAS DE INFORMAÇÃO 6 Motivação Para essas operações, os dados devem estar ordenados. •Algoritmos de ordenação constituem uma classe muito estudada de algoritmos. •Por quê? 7SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 7SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 7SISTEMAS DE INFORMAÇÃO 7SISTEMAS DE INFORMAÇÃO 77 7SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 7SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 7SISTEMAS DE INFORMAÇÃO 77SISTEMAS DE INFORMAÇÃO 7 Motivação Para essas operações, os dados devem estar ordenados. •Algoritmos de ordenação constituem uma classe muito estudada de algoritmos. •é impossível pensar em buscas sem ordenação; •buscas exigem que os dados estejam organizados; •volume de dados geralmente é grande. 8SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 8SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 8SISTEMAS DE INFORMAÇÃO 8SISTEMAS DE INFORMAÇÃO 88 8SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 8SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 8SISTEMAS DE INFORMAÇÃO 88SISTEMAS DE INFORMAÇÃO 8 O problema da ordenação Mas obviamente os mesmos algoritmos podem ser facilmente adaptados para realizar uma ordenação decrescente 9SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 9SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 9SISTEMAS DE INFORMAÇÃO 9SISTEMAS DE INFORMAÇÃO 99 9SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 9SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 9SISTEMAS DE INFORMAÇÃO 99SISTEMAS DE INFORMAÇÃO 9 Algoritmos de ordenação Terceira parte da disciplina Já vimos em aulas anteriores: – InsertionSort (inserção direta) – MergeSort (ordenação por intercalação) Vamos revisar hoje outros que já devem ter visto: – SelectionSort (ordenação por seleção direta) – BubbleSort (ordenação pelo método da bolha) Vamos comparar os quatro levando em consideração: – Quanto usa de espaço – Complexidade de tempo (total, comparações e movimentações) – Estabilidade Veremos outros até o final da disciplina, m as mesmo assim ainda não veremos todos!!! 10SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 10SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 10SISTEMAS DE INFORMAÇÃO 10SISTEMAS DE INFORMAÇÃO 1010 10SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 10SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 10SISTEMAS DE INFORMAÇÃO 1010SISTEMAS DE INFORMAÇÃO 10 Algoritmos de ordenação Terceira parte da disciplina Já vimos em aulas anteriores: – InsertionSort (inserção direta) – MergeSort (ordenação por intercalação) Vamos revisar hoje outros que já devem ter visto: – SelectionSort (ordenação por seleção direta) – BubbleSort (ordenação pelo método da bolha) Vamos comparar os quatro levando em consideração: – Quanto usa de espaço – Complexidade de tempo (total, comparações e movimentações) – Estabilidade Vamos agora falar um pouquinho disso 11SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 11SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 11SISTEMAS DE INFORMAÇÃO 11SISTEMAS DE INFORMAÇÃO 1111 11SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 11SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 11SISTEMAS DE INFORMAÇÃO 1111SISTEMAS DE INFORMAÇÃO 11 Ordenação interna x externa Ordenação interna: – o arquivo/vetor cabe inteiramente na memória principal – tema desta disciplina Ordenação externa: – o arquivo/vetor NÃO cabe inteiramente na memória principal, e portanto a memória secundária (disco/SSD) precisa ser usada como apoio – Tema da disciplina ACH2024 (AED 2) 12SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 12SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 12SISTEMAS DE INFORMAÇÃO 12SISTEMAS DE INFORMAÇÃO 1212 12SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 12SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 12SISTEMAS DE INFORMAÇÃO 1212SISTEMAS DE INFORMAÇÃO 12 Uso de espaço • O uso econômico da memória disponível é um requisito primordial na ordenação interna. • Métodos de ordenação in situ ou in loco (que ordenam no próprio vetor, usando no máximo algumas poucas variáveis a mais) são os preferidos. • Métodos que utilizam listas encadeadas não são muito utilizados (ponteiro gasta espaço). 13SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 13SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 13SISTEMAS DE INFORMAÇÃO 13SISTEMAS DE INFORMAÇÃO 1313 13SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 13SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 13SISTEMAS DE INFORMAÇÃO 1313SISTEMAS DE INFORMAÇÃO 13 Algoritmos de ordenação Terceira parte da disciplina Já vimos em aulas anteriores: – InsertionSort (inserção direta) – MergeSort (ordenação por intercalação) Vamos revisar hoje outros que já devem ter visto: – SelectionSort (ordenação por seleção direta) – BubbleSort (ordenação pelo método da bolha) Vamos levar em consideração nas comparações: – Quanto usa de espaço – Complexidade de tempo (total, comparações e movimentações) – Estabilidade Vamos agora falar um pouquinho disso 14SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 14SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 14SISTEMAS DE INFORMAÇÃO 14SISTEMAS DE INFORMAÇÃO 1414 14SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO14SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 14SISTEMAS DE INFORMAÇÃO 1414SISTEMAS DE INFORMAÇÃO 14 Algoritmos de ordenação Ordenação utilizando um determinado campo chave Normalmente usaremos vetores com apenas um valor (ao invés de uma estrutura) para simplificar o problema e focar apenas na lógica de ordenação Mas na prática, quando as estruturas (registros) são muito grandes, minimizar movimentações é interessante. Por isso…. 15SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 15SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 15SISTEMAS DE INFORMAÇÃO 15SISTEMAS DE INFORMAÇÃO 1515 15SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 15SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 15SISTEMAS DE INFORMAÇÃO 1515SISTEMAS DE INFORMAÇÃO 15 Complexidade de tempo de algoritmos de ordenação Para um vetor de tamanho n, a complexidade de tempo pode ser analisada pela: Complexidade total - T(n): número de operações (como fizemos até agora) Número de comparações (entre as chaves) – C(n) Número de movimentações de registros - M(n) 16SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 16SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 16SISTEMAS DE INFORMAÇÃO 16SISTEMAS DE INFORMAÇÃO 1616 16SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 16SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 16SISTEMAS DE INFORMAÇÃO 1616SISTEMAS DE INFORMAÇÃO 16 Algoritmos de ordenação Terceira parte da disciplina Já vimos em aulas anteriores: – InsertionSort (inserção direta) – MergeSort (ordenação por intercalação) Vamos revisar hoje outros que já devem ter visto: – SelectionSort (ordenação por seleção direta) – BubbleSort (ordenação pelo método da bolha) Vamos levar em consideração nas comparações: – Quanto usa de espaço – Complexidade de tempo (total, comparações e movimentações) – Estabilidade Vamos agora falar um pouquinho disso 17SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 17SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 17SISTEMAS DE INFORMAÇÃO 17SISTEMAS DE INFORMAÇÃO 1717 17SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 17SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 17SISTEMAS DE INFORMAÇÃO 1717SISTEMAS DE INFORMAÇÃO 17 Estabilidade: motivação Suponha que você quer ordenar uma planilha por um determinado campo, ex. Nome: 18SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 18SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 18SISTEMAS DE INFORMAÇÃO 18SISTEMAS DE INFORMAÇÃO 1818 18SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 18SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 18SISTEMAS DE INFORMAÇÃO 1818SISTEMAS DE INFORMAÇÃO 18 Estabilidade: motivação Suponha que você quer ordenar uma planilha por um determinado campo, ex. Nome: 19SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 19SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 19SISTEMAS DE INFORMAÇÃO 19SISTEMAS DE INFORMAÇÃO 1919 19SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 19SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 19SISTEMAS DE INFORMAÇÃO 1919SISTEMAS DE INFORMAÇÃO 19 Estabilidade: motivação Suponha que você quer ordenar uma planilha por um determinado campo, ex. Nome: Agora você quer ordenar por outro campo (ex. Idade) mantendo a ordenação por nome no caso de empate de idade (ou seja, sem alterar a ordem relativa entre os empates) 20SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 20SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 20SISTEMAS DE INFORMAÇÃO 20SISTEMAS DE INFORMAÇÃO 2020 20SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 20SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 20SISTEMAS DE INFORMAÇÃO 2020SISTEMAS DE INFORMAÇÃO 20 Estabilidade: motivação Suponha que você quer ordenar uma planilha por um determinado campo, ex. Nome: Agora você quer ordenar por outro campo (ex. Idade) mantendo a ordenação por nome no caso de empate de idade (ou seja, sem alterar a ordem relativa entre os empates) Ou seja, você quer um algoritmo de ordenação estável ! 21SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 21SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 21SISTEMAS DE INFORMAÇÃO 21SISTEMAS DE INFORMAÇÃO 2121 21SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 21SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 21SISTEMAS DE INFORMAÇÃO 2121SISTEMAS DE INFORMAÇÃO 21 Estabilidade Definição: Um algoritmo de ordenação é estável se não altera a posição relativa de elementos que têm um mesmo valor. Ex.: 22SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 22SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 22SISTEMAS DE INFORMAÇÃO 22SISTEMAS DE INFORMAÇÃO 2222 22SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 22SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 22SISTEMAS DE INFORMAÇÃO 2222SISTEMAS DE INFORMAÇÃO 22 Estabilidade Alguns dos métodos de ordenação mais eficientes não são estáveis. 24SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 24SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 24SISTEMAS DE INFORMAÇÃO 24SISTEMAS DE INFORMAÇÃO 2424 24SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 24SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 24SISTEMAS DE INFORMAÇÃO 2424SISTEMAS DE INFORMAÇÃO 24 Algoritmos de ordenação • Algoritmos elementares (simples) Inserção Direta (InsertionSort) Seleção Direta (SelectionSort) Método da Bolha (BubbleSort) 25 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25SISTEMAS DE INFORMAÇÃO 2525SISTEMAS DE INFORMAÇÃO 25 Insertion sort (inserção direta) Complexidade de tempo: In loco?: Estável: insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 26 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 26SISTEMAS DEINFORMAÇÃO 2626 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26SISTEMAS DE INFORMAÇÃO 2626SISTEMAS DE INFORMAÇÃO 26 Insertion sort (inserção direta) Complexidade de tempo: O(n2) In loco?: Estável: insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 27 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27SISTEMAS DE INFORMAÇÃO 2727SISTEMAS DE INFORMAÇÃO 27 Insertion sort (inserção direta) Complexidade de tempo: O(n2) In loco?: SIM! Estável: insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 28 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28SISTEMAS DE INFORMAÇÃO 2828SISTEMAS DE INFORMAÇÃO 28 Insertion sort (inserção direta) Complexidade de tempo: O(n2) In loco?: SIM! Estável: Sim! O que o torna estável? insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 29 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29SISTEMAS DE INFORMAÇÃO 2929SISTEMAS DE INFORMAÇÃO 29 Insertion sort (inserção direta) Complexidade de tempo: O(n2) In loco?: SIM! Estável: Sim! O que o torna estável? O menor elemento do subvetor à direita é inserido APÓS os elementos que já foram ordenados, e o processo é realizado da esquerda para a direita. insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 30 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30SISTEMAS DE INFORMAÇÃO 3030SISTEMAS DE INFORMAÇÃO 30 Insertion sort (inserção direta) Complexidade de tempo: O(n2) Complexidade de tempo no melhor caso: insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 31 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31SISTEMAS DE INFORMAÇÃO 3131SISTEMAS DE INFORMAÇÃO 31 Insertion sort (inserção direta) Complexidade de tempo: O(n2) Complexidade de tempo no melhor caso: O(n) quando o vetor já está ordenado insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 32 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32SISTEMAS DE INFORMAÇÃO 3232SISTEMAS DE INFORMAÇÃO 32 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): ? Note que além das comparações entre chaves temos a comparação i > 0 Dá para eliminá-la… como? insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquantoi > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 33 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33SISTEMAS DE INFORMAÇÃO 3333SISTEMAS DE INFORMAÇÃO 33 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): ? Note que além das comparações entre chaves temos a comparação i > 0 Dá para eliminá-la… como? Usando uma sentinela! - colocando na primeira posição (extra) um valor “-infinito” (ex: INT_MIN) O código do slide a seguir está em C, por isso assumiremos que o vetor começa em 0 (mas terá uma posição a mais por conta da sentinela). insercao (n, v) para j ← 2 até tamanho de v faça chave ← v[j]; // ordenando elementos à esquerda i ← j – 1 enquanto i > 0 e v[i] > chave faça v[i+1] ← v[i] i ← i - 1 fim enquanto v[i+1] ← chave fim para 34 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34SISTEMAS DE INFORMAÇÃO 3434SISTEMAS DE INFORMAÇÃO 34 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 35 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35SISTEMAS DE INFORMAÇÃO 3535SISTEMAS DE INFORMAÇÃO 35 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 36 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36SISTEMAS DE INFORMAÇÃO 3636SISTEMAS DE INFORMAÇÃO 36 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: (j-1 números + sentinela) #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 37 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37SISTEMAS DE INFORMAÇÃO 3737SISTEMAS DE INFORMAÇÃO 37 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: (j-1 números + sentinela) #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 38 3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO3838SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38SISTEMAS DE INFORMAÇÃO 3838SISTEMAS DE INFORMAÇÃO 38 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: (j-1 números + sentinela) #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 39 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39SISTEMAS DE INFORMAÇÃO 3939SISTEMAS DE INFORMAÇÃO 39 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: Pois j começa em 2 (j-1 números + sentinela) #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 40 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40SISTEMAS DE INFORMAÇÃO 4040SISTEMAS DE INFORMAÇÃO 40 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total, assumindo que todas as permutações de n são igualmente prováveis no caso médio: (j-1 números + sentinela) Pois j começa em 2 #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 41 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41SISTEMAS DE INFORMAÇÃO 4141SISTEMAS DE INFORMAÇÃO 41 Insertion sort (inserção direta) Número de comparações entre chaves - C(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: No total (para j de 2 a n): (j-1 números + sentinela) Σ j+1 = 1 Σ j+1 j=2 j=2 nn 2 2 #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } média (1, j) 0 n -∞ -∞ -∞ 42 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42SISTEMAS DE INFORMAÇÃO 4242SISTEMAS DE INFORMAÇÃO 42 Insertion sort (inserção direta) Número de movimentações de registros - M(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: Melhor caso: Mj(n) = 2 #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 43 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43SISTEMAS DE INFORMAÇÃO 4343SISTEMAS DE INFORMAÇÃO 43 Insertion sort (inserção direta) Número de movimentações de registros - M(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: Melhor caso: Mj(n) = 2 Pior caso: Mj(n) = (j-1)+2 Caso médio: Mj(n) = média(2, j+1) = (j+3)/2 No total (para j de 2 a n): Melhor caso: M(n) = 2(n-1) #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ 44 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO44SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44SISTEMAS DE INFORMAÇÃO 4444SISTEMAS DE INFORMAÇÃO 44 Insertion sort (inserção direta) Número de movimentações de registros - M(n): Para análise de caso médio é útil entender o que ocorre em cada iteração: Na iteração de um dado valor j: Melhor caso: Mj(n) = 2 Pior caso: Mj(n) = (j-1)+2 Caso médio: Mj(n) = média(2, j+1) = (j+3)/2 No total (para j de 2 a n): Melhor caso: M(n) = 2(n-1) #include <limits.h> void insercao(int n, int [] v) { int i, j, chave; v[0] = INT_MIN; //sentinela!!! for (j = 2; j <= n; j++) { chave = v[j]; // ordenando elementos à esquerda i = j – 1; while (v[i] > chave){ v[i+1] = v[i]; i = i - 1; } v[i+1] = chave; } } 0 n -∞ -∞ -∞ No livro do Ziviani ele coloca a inicialização da sentinela dentro do for (v[0] = chave). É desnecessário, e aumenta em 1 o nr de movimentações (que ele só considerou no melhor caso, por isso lá ele coloca Mj(n) = 3). No pior caso e caso médio ficou igual porque acho que ele considerou usar o v[0] no lugar da chave. SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 SISTEMAS DE INFORMAÇÃO 45 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 45 45SISTEMAS DE INFORMAÇÃO 45 45 45 45SISTEMAS DE INFORMAÇÃO 4545 Tabela comparativa dos algoritmos de ordenação SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 SISTEMAS DE INFORMAÇÃO 46 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 46 46SISTEMAS DE INFORMAÇÃO 46 46 46 46SISTEMAS DE INFORMAÇÃO 4646 Seleção Direta • Primeiro passo: – Encontrar o menor elemento do array – Levar este menor elemento para o início do array (troca com o primeiro) • Segundo passo: – Encontrar o segundo menor elemento do array – Levar este menor elemento para a segunda posição do array (troca de posição) • E assim por diante... 52 125 -4 32 55 69 -78 200 0 63 SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 SISTEMAS DE INFORMAÇÃO 47 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 47 47SISTEMAS DE INFORMAÇÃO 47 47 47 47SISTEMAS DE INFORMAÇÃO 4747 1) 52 125 -4 32 55 69 -78 200 0 63 Prox. Posição a ser preenchida Subvetor a ser pesquisado pelo menor elemento Seleção Direta SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 SISTEMAS DE INFORMAÇÃO 48 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 48 48SISTEMAS DE INFORMAÇÃO 48 48 48 48SISTEMAS DE INFORMAÇÃO 4848 1) Prox. Posição a ser preenchida Subvetor a ser pesquisado pelo menor elemento Seleção Direta // código para achar o menor elemento // i é a prox posição a ser preenchida, min é o índice do menor elemento min = i; for (j = i+1; i < n; j++) if (v[j] < v[min]) min = j; 52 125 -4 32 55 69 -78 200 0 63 SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 SISTEMAS DE INFORMAÇÃO 49 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 49 49SISTEMAS DE INFORMAÇÃO 49 49 49 49SISTEMAS DE INFORMAÇÃO 4949 1) 52 125 -4 32 55 69 -78 200 0 63 Subvetor a ser pesquisado Menor valor encontrado Seleção Direta Prox. posição SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 SISTEMAS DE INFORMAÇÃO 50 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 50 50SISTEMAS DE INFORMAÇÃO 50 50 50 50SISTEMAS DE INFORMAÇÃO 5050 1) Prox. posição Menor valor encontrado TROCA Seleção Direta 52 125 -4 32 55 69 -78 200 0 63 SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 SISTEMAS DE INFORMAÇÃO 51 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 51 51SISTEMAS DE INFORMAÇÃO 51 51 51 51SISTEMAS DE INFORMAÇÃO 5151 1) Prox. posição Menor valor encontrado TROCA -78 125 -4 32 55 69 52 200 0 63 Seleção Direta 52 125 -4 32 55 69 -78 200 0 63 SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 SISTEMAS DE INFORMAÇÃO 52 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 52 52SISTEMAS DE INFORMAÇÃO 52 52 52 52SISTEMAS DE INFORMAÇÃO 5252 2) -78 125 -4 32 55 69 52 200 0 63 Prox. posição Subvetor a ser pesquisado Seleção Direta SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 SISTEMAS DE INFORMAÇÃO 53 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 53 53SISTEMAS DE INFORMAÇÃO 53 53 53 53SISTEMAS DE INFORMAÇÃO 5353 2) -78 125 -4 32 55 69 52 200 0 63 Prox. posição Subvetor a ser pesquisado Menor valor encontrado Seleção Direta SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 SISTEMAS DE INFORMAÇÃO 54 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54SISTEMAS DE INFORMAÇÃO 5454 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 54 54SISTEMAS DE INFORMAÇÃO 54 54 54 54SISTEMAS DE INFORMAÇÃO 5454 2) Prox. posição Menor valor encontrado TROCA -78 -4 125 32 55 69 52 200 0 63 Seleção Direta -78 125 -4 32 55 69 52 200 0 63 SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 SISTEMAS DE INFORMAÇÃO 55 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 55 55SISTEMAS DE INFORMAÇÃO 55 55 55 55SISTEMAS DE INFORMAÇÃO 5555 3) -78 -4 125 32 55 69 52 200 0 63 Subvetor a ser pesquisado Seleção Direta Prox. posição SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 SISTEMAS DE INFORMAÇÃO 56 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 56 56SISTEMAS DE INFORMAÇÃO 56 56 56 56SISTEMAS DE INFORMAÇÃO 5656 3) -78 -4 125 32 55 69 52 200 0 63 Prox. posição Menor valor encontrado Seleção Direta SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 SISTEMAS DE INFORMAÇÃO 57 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 57 57SISTEMAS DE INFORMAÇÃO 57 57 57 57SISTEMAS DE INFORMAÇÃO 5757 3) Prox. posição Menor valor encontrado TROCA -78 -4 0 32 55 69 52 200 125 63 Seleção Direta -78 -4 125 32 55 69 52 200 0 63 SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 SISTEMAS DE INFORMAÇÃO 58 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 58 58SISTEMAS DE INFORMAÇÃO 58 58 58 58SISTEMAS DE INFORMAÇÃO 5858 4) -78 -4 0 32 55 69 52 200 125 63 Subvetor a ser pesquisado E assim por diante... Seleção Direta Prox. posição SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 SISTEMAS DE INFORMAÇÃO 59 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 59 59SISTEMAS DE INFORMAÇÃO 59 59 59 59SISTEMAS DE INFORMAÇÃO 5959 4) Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta Prox. posição -78 -4 0 32 55 69 52 200 125 63 SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 SISTEMAS DE INFORMAÇÃO 60 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 60 60SISTEMAS DE INFORMAÇÃO 60 60 60 60SISTEMAS DE INFORMAÇÃO 6060 4) -78 -4 0 32 55 69 52 200 125 63 Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta Prox. posição SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 SISTEMAS DE INFORMAÇÃO 61 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 61 61SISTEMAS DE INFORMAÇÃO 61 61 61 61SISTEMAS DE INFORMAÇÃO 6161 4) -78 -4 0 32 52 69 55 200 125 6355 Prox. posição Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 SISTEMAS DE INFORMAÇÃO 62 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 62 62SISTEMAS DE INFORMAÇÃO 62 62 62 62SISTEMAS DE INFORMAÇÃO 6262 4) -78 -4 0 32 52 55 69 200 125 63 Prox. posição Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 SISTEMAS DE INFORMAÇÃO 63 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 63 63SISTEMAS DE INFORMAÇÃO 63 63 63 63SISTEMAS DE INFORMAÇÃO 6363 4) -78 -4 0 32 52 55 63 200 125 69 Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta Prox. posição SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 SISTEMAS DE INFORMAÇÃO 64 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 64 64SISTEMAS DE INFORMAÇÃO 64 64 64 64SISTEMAS DE INFORMAÇÃO 6464 4) -78 -4 0 32 52 55 63 69 125 200200 Prox. posição Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 SISTEMAS DE INFORMAÇÃO 65 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 65 65SISTEMAS DE INFORMAÇÃO 65 65 65 65SISTEMAS DE INFORMAÇÃO 6565 4) -78 -4 0 32 52 55 63 69 125 200200 Prox. posição Subvetor a ser pesquisado E assim por diante... ATÉ QUANDO? Seleção Direta ? SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 SISTEMAS DE INFORMAÇÃO 66 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 66 66SISTEMAS DE INFORMAÇÃO 66 66 66 66SISTEMAS DE INFORMAÇÃO 6666 4) Prox. posição Subvetor a ser pesquisado Seleção Direta ? E assim por diante... PÁRO QUANDO PRÓXIMA POSIÇÃO = TAM-1 (a última rodada é para pos = tam - 2) -78 -4 0 32 52 55 63 69 125 200200 SISTEMAS DE INFORMAÇÃO 6767 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 SISTEMAS DE INFORMAÇÃO 67 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 67 67SISTEMAS DE INFORMAÇÃO 67 67 67 67SISTEMAS DE INFORMAÇÃO 6767 Algoritmo (vetor com início em 0): • para cada posição do vetor original, onde a próxima posição a ser preenchida vai de 0 a tam-2 • Percorre subvetor (da próxima posição a ser preenchida até tamanho do vetor -1) para encontrar menor valor no subvetor • Troca com o elemento da próxima posição a ser preenchida Seleção Direta SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 SISTEMAS DE INFORMAÇÃO 68 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 68 68SISTEMAS DE INFORMAÇÃO 68 68 68 68SISTEMAS DE INFORMAÇÃO 6868 Seleção Direta SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 SISTEMAS DE INFORMAÇÃO 69 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 69 69SISTEMAS DE INFORMAÇÃO 69 69 69 69SISTEMAS DE INFORMAÇÃO 6969 Seleção Direta In loco?: SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 SISTEMAS DE INFORMAÇÃO 70 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 70 70SISTEMAS DE INFORMAÇÃO 70 70 70 70SISTEMAS DE INFORMAÇÃO 7070 Seleção Direta In loco?: SIM! Estável: SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 SISTEMAS DE INFORMAÇÃO 71 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 71 71SISTEMAS DE INFORMAÇÃO 71 71 71 71SISTEMAS DE INFORMAÇÃO 7171 Seleção Direta In loco?: SIM! Estável: Não! Por quê? SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 SISTEMAS DE INFORMAÇÃO 72 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 72 72SISTEMAS DE INFORMAÇÃO 72 72 72 72SISTEMAS DE INFORMAÇÃO 7272 Seleção Direta In loco?: SIM! Estável: Não! Por quê? A troca pode fazer com que um elemento da posição j vá para a posição min, passando “por cima” de outros elementos de igual valor SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 SISTEMAS DE INFORMAÇÃO 73 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 73 73SISTEMAS DE INFORMAÇÃO 73 73 73 73SISTEMAS DE INFORMAÇÃO 7373 Seleção Direta Complexidade de tempo: SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 SISTEMAS DE INFORMAÇÃO 74 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 74 74SISTEMAS DE INFORMAÇÃO 74 74 74 74SISTEMAS DE INFORMAÇÃO 7474 Seleção Direta Complexidade de tempo: O(n2) Complexidade de tempo no melhor caso: SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 SISTEMAS DE INFORMAÇÃO 75 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 75 75SISTEMAS DE INFORMAÇÃO 75 75 75 75SISTEMAS DE INFORMAÇÃO 7575 Seleção Direta Complexidade de tempo: O(n2) Complexidade de tempo no melhor caso: Não tem melhor caso – faz O(n2) sempre! SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 SISTEMAS DE INFORMAÇÃO 76 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 76 76SISTEMAS DE INFORMAÇÃO 76 76 76 76SISTEMAS DE INFORMAÇÃO 7676 Seleção Direta para i←1 até n - 1 faça min ← i para j←i +1 até n faça se v[j] < v[min] min ← j x ←v[i] v[i] ←v[min] v[min] ←x Pseudocódigo: (vetor começando em 1 facilita as contas corretas) SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 SISTEMAS DE INFORMAÇÃO 77 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 77 77SISTEMAS DE INFORMAÇÃO 77 77 77 77SISTEMAS DE INFORMAÇÃO 7777 Seleção Direta (n-i) = Σ n-1 + n-2 + + 1… i=1 n-1 para i←1 até n - 1 faça min ← i para j←i +1 até n faça se v[j] < v[min] min ← j x ←v[i] v[i] ←v[min] v[min] ←x Pseudocódigo: (vetor começando em 1 facilita as contas corretas) SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 SISTEMAS DE INFORMAÇÃO 78 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 78 78SISTEMAS DE INFORMAÇÃO 78 78 78 78SISTEMAS DE INFORMAÇÃO 7878 Seleção Direta (n-i) = Σ n-1 + n-2 + + 1… i=1 n-1 para i←1 até n - 1 faça min ← i para j←i +1 até n faça se v[j] < v[min] min ← j x ←v[i] v[i] ←v[min] v[min] ←x Pseudocódigo: (vetor começando em 1 facilita as contas corretas) Linear no número de movimentações!!! Muito atraente quando os registros são grandes!!! SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79SISTEMAS DE INFORMAÇÃO79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 SISTEMAS DE INFORMAÇÃO 79 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 79 79SISTEMAS DE INFORMAÇÃO 79 79 79 79SISTEMAS DE INFORMAÇÃO 7979 Comparando InsertionSort com SelectionSort • InsertionSort: quando é uma boa escolha? – Boa escolha para arquivos quase ordenados, ou quando precisa inserir alguns poucos registros em um arquivo que já estava ordenado • SelectionSort: – Boa escolha para quando os arquivos não estão quase ordenados e os registros são grandes – e estabilidade não é um problema (M(n) linear é um grande diferencial...) SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 SISTEMAS DE INFORMAÇÃO 80 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 80 80SISTEMAS DE INFORMAÇÃO 80 80 80 80SISTEMAS DE INFORMAÇÃO 8080 Comparando InsertionSort com SelectionSort • InsertionSort: – Boa escolha para arquivos quase ordenados, ou quando precisa inserir alguns poucos registros em um arquivo que já estava ordenado • SelectionSort: quando é uma boa escolha? – Boa escolha para quando os arquivos não estão quase ordenados e os registros são grandes – e estabilidade não é um problema (M(n) linear é um grande diferencial...) SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 SISTEMAS DE INFORMAÇÃO 81 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 81 81SISTEMAS DE INFORMAÇÃO 81 81 81 81SISTEMAS DE INFORMAÇÃO 8181 Comparando InsertionSort com SelectionSort • InsertionSort: – Boa escolha para arquivos quase ordenados, ou quando precisa inserir alguns poucos registros em um arquivo que já estava ordenado • SelectionSort: – Boa escolha para quando os arquivos não estão quase ordenados e os registros são grandes – e estabilidade não é um problema (M(n) linear é um grande diferencial...) SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 SISTEMAS DE INFORMAÇÃO 82 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 82 82SISTEMAS DE INFORMAÇÃO 82 82 82 82SISTEMAS DE INFORMAÇÃO 8282 Seleção Direta - Exercício Prove por indução que esse algoritmo está correto. Dica: Qual é a invariante A no início do laço que pode ser usada nesta prova? SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 SISTEMAS DE INFORMAÇÃO 83 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 83 83SISTEMAS DE INFORMAÇÃO 83 83 83 83SISTEMAS DE INFORMAÇÃO 8383 Método da bolha (BubbleSort) • Passa pelo array uma bolha que ordena duas posições consecutivas (leva o maior elemento para o final do vetor) • Percorre o array e, em cada passo: – Testa se dois vizinhos estão ordenados – Troca o par que não estiver ordenado SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 SISTEMAS DE INFORMAÇÃO 84 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 84 84SISTEMAS DE INFORMAÇÃO 84 84 84 84SISTEMAS DE INFORMAÇÃO 8484 1) 52 125 -4 32 55 69 -78 200 0 63 52 -4 125 32 55 69 -78 200 0 63 52 -4 32 125 55 69 -78 200 0 63 52 -4 32 55 125 69 -78 200 0 63 52 -4 32 55 69 125 -78 200 0 63 troca troca troca troca troca não troca não troca 52 -4 32 55 69 -78 125 0 200 63 troca Posição correta 52 -4 32 55 69 -78 125 200 0 63 troca 52 -4 32 55 69 -78 125 0 63 200 SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 SISTEMAS DE INFORMAÇÃO 85 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 85 85SISTEMAS DE INFORMAÇÃO 85 85 85 85SISTEMAS DE INFORMAÇÃO 8585 2) -4 52 32 55 69 -78 125 0 63 200 troca troca não troca -4 32 52 55 -78 69 0 63 125 200 Posição correta 52 -4 32 55 69 -78 125 0 63 200 .... -4 32 52 55 69 -78 125 0 63 200 SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 SISTEMAS DE INFORMAÇÃO 86 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 86 86SISTEMAS DE INFORMAÇÃO 86 86 86 86SISTEMAS DE INFORMAÇÃO 8686 2) -4 52 32 55 69 -78 125 0 63 200 troca troca não troca -4 32 52 55 -78 69 0 63 125 200 Posição correta 52 -4 32 55 69 -78 125 0 63 200 .... -4 32 52 55 69 -78 125 0 63 200 E assim por diante... SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 SISTEMAS DE INFORMAÇÃO 87 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 87 87SISTEMAS DE INFORMAÇÃO 87 87 87 87SISTEMAS DE INFORMAÇÃO 8787 Algoritmo: • Quantas vezes? – Percorre o vetor desde o início até onde já estiver ordenado (ivet) e vai trocando o par de lugar quando posicão [j-1] > posição [j] Método da bolha (BubbleSort) SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 SISTEMAS DE INFORMAÇÃO 88 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 88 88SISTEMAS DE INFORMAÇÃO 88 88 88 88SISTEMAS DE INFORMAÇÃO 8888 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) {temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 SISTEMAS DE INFORMAÇÃO 89 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 89 89SISTEMAS DE INFORMAÇÃO 89 89 89 89SISTEMAS DE INFORMAÇÃO 8989 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) { temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) In loco?: SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 SISTEMAS DE INFORMAÇÃO 90 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 90 90SISTEMAS DE INFORMAÇÃO 90 90 90 90SISTEMAS DE INFORMAÇÃO 9090 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) { temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) In loco?: SIM! SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 SISTEMAS DE INFORMAÇÃO 91 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 91 91SISTEMAS DE INFORMAÇÃO 91 91 91 91SISTEMAS DE INFORMAÇÃO 9191 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) { temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) In loco?: SIM! Estável: Exercício! Se sim, o que o torna estável? Se não, dá para fazer alguma alteraçãozinha para torná-lo estável? Complexidade de tempo: SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 SISTEMAS DE INFORMAÇÃO 92 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 92 92SISTEMAS DE INFORMAÇÃO 92 92 92 92SISTEMAS DE INFORMAÇÃO 9292 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) { temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) In loco?: SIM! Estável: Exercício! Se sim, o que o torna estável? Se não, dá para fazer alguma alteraçãozinha para torná-lo estável? Complexidade de tempo: O(n2) Complexidade de tempo no melhor caso: SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 SISTEMAS DE INFORMAÇÃO 93 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 93 93SISTEMAS DE INFORMAÇÃO 93 93 93 93SISTEMAS DE INFORMAÇÃO 9393 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) { temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) In loco?: SIM! Estável: Exercício! Se sim, o que o torna estável? Se não, dá para fazer alguma alteraçãozinha para torná-lo estável? Complexidade de tempo: O(n2) Complexidade de tempo no melhor caso: Não tem melhor caso – faz O(n2) sempre! SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 SISTEMAS DE INFORMAÇÃO 94 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 94 94SISTEMAS DE INFORMAÇÃO 94 94 94 94SISTEMAS DE INFORMAÇÃO 9494 void bolha(int n, int [] v) { int ivet, j, temp; // ivet é o “final” do vetor para onde deve ir o maior elemento (do fim para o início) for (ivet = n - 1; ivet > 0; ivet--) { // a cada passagem o maior elemento é descolado para a sua posição correta for (j = 0; j < ivet; j++) // se ordem está errada para dois números consecutivos, troca os números if (v[j] > v[j+1]) { temp = v[j]; v[j] = v[j+1]; v[j+1] = temp; } } } Método da bolha (BubbleSort) Exercício: Faça as análises de nr de comparações e Nr de movimentações para o melhor/pior Caso e caso médio. SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 SISTEMAS DE INFORMAÇÃO 95 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 95 95SISTEMAS DE INFORMAÇÃO 95 95 95 95SISTEMAS DE INFORMAÇÃO 9595 Algoritmos elementares x eficientes • InsertionSort, SelectionSort e BubbleSort são exemplos de algoritmos elementares de ordenação – Complexidade de tempo (pior caso): O(n2) – Porém na prática são bem rápidos para arquivos pequenos (preferíveis) – Algoritmos