SlideShare ist ein Scribd-Unternehmen logo
1 von 3
Centro Universitário do Sul de Minas – UNIS-MG
Unidade de Gestão da Educação Superior Presencial – GEP
Ciência da Computação

Complexidade de Algoritmos Insertion, Selection e Bubble Sort
Análise de Algoritmos

Professor Renan Levenhagen Bustamante Neves

Júlio Cezar Ferreira Rocha

Varginha
2013
1 - Complexidade de Algoritmos Bubble Sort
As operações de comparações e de troca de posição de elementos são executadas no Pior
Caso, o algoritmo realizará n-1 troca para o primeiro passo, depois n-2 trocas para o segundo
elemento e assim sucessivamente. Trocas = n-1+n-2+n-3...+2+1 aproximadamente n2 trocas.
No Melhor Caso, nenhuma troca será realizada, pois em ambos os casos o algoritmo faz da
ordem n comparações.
Complexidade no tempo: Comportamento do algoritmo no tempo, em função do tamanho
da entrada.
Complexidade no espaço: Consumo de memória do algoritmo, em função do tamanho da
entrada.
O tempo gasto na execução do algoritmo varia em ordem quadrática em relação ao
número de elementos a serem ordenados.
- T = O (n²) – Notação “Big O”
- Atividades mais custosas:
• Comparações
• Troca de Posição (swap)
Melhor caso: Vetor Ordenado.
Pior caso: Vetor invertido.

2 - Complexidade de Algoritmos Selection Sort
A operação entre as chaves é feita no loop k, para cada valor de i são realizadas (i-1)
comparações no loop, como i varia de 2 até n, o número total de comparações para ordenar a
lista toda é que para qualquer valor de i existe no máximo uma troca, se no caso a lista já
estiver ordenada não ocorre troca. Pior caso existe uma troca para cada loop de k (n-1) para
cada troca exige três movimentos. O algoritmo de seleção é considerado um dos mais simples,
além disso, possui uma característica eficiente quanto à quantidade de movimentações de
registros, com um tempo de execução linear no tamanho de entrada. Geralmente é utilizado
para arquivos de registros maiores com até 1000 registros.
- T = O(n²)
O fato de o conjunto já estar ordenado não ajuda em nada. O algoritmo não é estável, isto
é, os registros com chaves iguais nem sempre irão manter a mesma posição relativa de antes
do início da ordenação.

3 – Complexidade de Algoritmos Insertion Sort
Se o valor a ordenar possui n elementos, então o algoritmo realizará n – 1 etapas.
Quantas comparações e trocas serão realizadas?
• No melhor caso, vetor ordenado, serão realizadas 1 comparação e 1 troca por
etapa, um total de (n-1) comparações e (n-1) trocas.
• No pior caso, vetor em ordem inversa, serão realizadas sucessivamente 1,2,3,... n1 comparações e trocas.
A soma dos termos dessa progressão aritmética será n²/2.
Pode ser demonstrado que para um vetor aleatório, o número aproximado de
comparações e trocas é n²/4.
Portanto, a complexidade deste algoritmo é quadrática.
- T = O(n²).
No anel mais interno, na i-ésima iteração, o valor de Ci é: Melhor caso: Ci(número de
comparações) = 1 Pior caso: Ci(número de comparações) = i Caso médio: Ci(número de
comparações) = 1/i(1 + 2 + ... + i) = (i+1)/2 Se todas as permutações de n são igualmente
prováveis para o caso médio, então, o número de comparações é igual a: Melhor caso: C(n) =
(1 + 1 + ... + 1) = n - 1 Pior caso: C(n) = (2 + 3 + ... + n) = n2/2 + n/2 - 1 Caso médio: C(n) =
1/2(3 + 4 + ... + n+1) = n2/4 + 3n/4 – 1 O número de movimentações na i-ésima iteração é
igual a Mi(n) = Ci(n) – 1 + 3 = Ci(n) + 2 logo, o número de movimentos é igual a: Melhor
caso: M(número de elementos do arquivo) = (3 + 3 + ... + 3) = 3(n – 1) Pior caso: M(número
de elementos do arquivo) = (4 + 5 + ... + n+2) = n2/2 + 5n/2 – 3 Caso médio: M(número de
elementos do arquivo) = 1/2(5 + 6 + ... + n+3) = n2/4 + 11n/4 – 3 Deste modo podemos
concluir que: Melhor caso: O(n) Pior caso: O(n2) Caso médio: O(n2) O menor número de
comparações e trocas ocorre exatamente quando os elementos estão originalmente em ordem,
e o número máximo de comparações e trocas ocorre quando os itens estão originalmente na
ordem oposta. Para arquivos já ordenados o algoritmo descobre a um custo O(n) que cada
item já está em seu lugar. Então, este é o método a ser utilizado quando o arquivo está
ordenado na sua origem. É também um método bom para adicionar um pequeno conjunto de
dados a um arquivo já ordenado, originando um outro arquivo ordenado, pois neste caso o
custo pode ser considerado linear.

4 - Bibliografia
Alves, Ms. Daniel Arndt. Estrutura de Dados II. Insertion Sort. São Paulo. 2009.
Alves, Ms. Daniel Arndt. Estrutura de Dados II. Selection Sort. São Paulo. 2009.
Alves, Ms. Daniel Arndt. Estrutura de Dados II. Bubble Sort. São Paulo. 2009.
Junior, Vilson Heck. Introdução a Complexidade de Algoritmos. São Paulo. 2008.
Prestes, Edson. Complexidade de Algoritmos. Rio de Janeiro. 2007.
Silva, Cândida Nunes. Complexidade de Algoritmos I. Rio de Janeiro. 2011.

Weitere ähnliche Inhalte

Was ist angesagt?

Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaDelacyr Ferreira
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordGabriel Albuquerque
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Gercélia Ramos
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenaçãoDaiana de Ávila
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoJanynne Gomes
 
Algoritmos visualg
Algoritmos visualgAlgoritmos visualg
Algoritmos visualgDiego Sales
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosMauro Pereira
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosNécio de Lima Veras
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Pacc UAB
 
Lógica de Programação - Procedimento
Lógica de Programação - ProcedimentoLógica de Programação - Procedimento
Lógica de Programação - ProcedimentoWesley R. Bezerra
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoRegis Magalhães
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisJorge Ávila Miranda
 

Was ist angesagt? (20)

Análise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise AssintóticaAnálise de Algoritmos - Análise Assintótica
Análise de Algoritmos - Análise Assintótica
 
Linguagem C - Operadores bit a bit
Linguagem C - Operadores bit a bitLinguagem C - Operadores bit a bit
Linguagem C - Operadores bit a bit
 
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-FordCaminho Mínimo em Grafos - Algoritmo de Bellman-Ford
Caminho Mínimo em Grafos - Algoritmo de Bellman-Ford
 
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
Pseudocódigo - Estrutura de Repetição (Lógica de Programação)
 
Algoritmo Shell Sort
Algoritmo Shell SortAlgoritmo Shell Sort
Algoritmo Shell Sort
 
Trabalho métodos de ordenação
Trabalho métodos de ordenaçãoTrabalho métodos de ordenação
Trabalho métodos de ordenação
 
Lógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de SeleçãoLógica de Programação - Estruturas de Seleção
Lógica de Programação - Estruturas de Seleção
 
Algoritmos visualg
Algoritmos visualgAlgoritmos visualg
Algoritmos visualg
 
Algoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registrosAlgoritmos e lp parte 4-vetores matrizes e registros
Algoritmos e lp parte 4-vetores matrizes e registros
 
Introdução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmosIntrodução à analise e complexidade de algoritmos
Introdução à analise e complexidade de algoritmos
 
Algoritmos de ordenação
Algoritmos de ordenaçãoAlgoritmos de ordenação
Algoritmos de ordenação
 
Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1Aula 5 - Estruturas de seleção simples e composta - parte 1
Aula 5 - Estruturas de seleção simples e composta - parte 1
 
Lógica de Programação - Procedimento
Lógica de Programação - ProcedimentoLógica de Programação - Procedimento
Lógica de Programação - Procedimento
 
Algoritmos - Pseudocódigo
Algoritmos - PseudocódigoAlgoritmos - Pseudocódigo
Algoritmos - Pseudocódigo
 
Aula 3 algoritmos
Aula 3   algoritmosAula 3   algoritmos
Aula 3 algoritmos
 
Logica Algoritmo 02 Algoritmo
Logica Algoritmo 02 AlgoritmoLogica Algoritmo 02 Algoritmo
Logica Algoritmo 02 Algoritmo
 
Estrutura de repetição
Estrutura de repetiçãoEstrutura de repetição
Estrutura de repetição
 
Structs em C
Structs em CStructs em C
Structs em C
 
Algoritmos
AlgoritmosAlgoritmos
Algoritmos
 
Aula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionaisAula02 - Sistemas Numéricos computacionais
Aula02 - Sistemas Numéricos computacionais
 

Andere mochten auch

métodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sortmétodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sortAlessandro Trevisan
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Universidade de São Paulo
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoOrlando Junior
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dadosThalita Chaves
 
Comparativo bubble sort e quick sort
Comparativo bubble sort e quick sortComparativo bubble sort e quick sort
Comparativo bubble sort e quick sortDaiana de Ávila
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasDelacyr Ferreira
 
Análise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação InternaAnálise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação InternaJohnnatan Messias
 
ShellSort - Ordenação
ShellSort - OrdenaçãoShellSort - Ordenação
ShellSort - OrdenaçãoAnderson Zardo
 
Apostila de Acordes
Apostila de Acordes  Apostila de Acordes
Apostila de Acordes Júlio Rocha
 
01 algorimos e complexidade introduç o
01   algorimos e complexidade introduç o01   algorimos e complexidade introduç o
01 algorimos e complexidade introduç oCravid Ekuikui
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sortLeno Oliveira
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoDelacyr Ferreira
 

Andere mochten auch (20)

métodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sortmétodos ordenação C, bolha, selection sort e insertion sort
métodos ordenação C, bolha, selection sort e insertion sort
 
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
Complexidade de Algoritmos, Notação assintótica, Algoritmos polinomiais e in...
 
Análise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenaçãoAnálise empírica de algoritmos de ordenação
Análise empírica de algoritmos de ordenação
 
Insertion Sort
Insertion SortInsertion Sort
Insertion Sort
 
Bubble Sort
Bubble SortBubble Sort
Bubble Sort
 
Selection Sort
Selection SortSelection Sort
Selection Sort
 
Ordenação
OrdenaçãoOrdenação
Ordenação
 
Metodos de ordenação estrutura de dados
Metodos de ordenação   estrutura de dadosMetodos de ordenação   estrutura de dados
Metodos de ordenação estrutura de dados
 
Comparativo bubble sort e quick sort
Comparativo bubble sort e quick sortComparativo bubble sort e quick sort
Comparativo bubble sort e quick sort
 
Análise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de RecorrênciasAnálise de Algoritmos - Solução de Recorrências
Análise de Algoritmos - Solução de Recorrências
 
Selection sort
Selection sortSelection sort
Selection sort
 
Análise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação InternaAnálise de Algoritmos de Ordenação Interna
Análise de Algoritmos de Ordenação Interna
 
ShellSort - Ordenação
ShellSort - OrdenaçãoShellSort - Ordenação
ShellSort - Ordenação
 
Análise de Algoritmos
Análise de AlgoritmosAnálise de Algoritmos
Análise de Algoritmos
 
Apostila de Acordes
Apostila de Acordes  Apostila de Acordes
Apostila de Acordes
 
01 algorimos e complexidade introduç o
01   algorimos e complexidade introduç o01   algorimos e complexidade introduç o
01 algorimos e complexidade introduç o
 
2 referencial teorico
2 referencial teorico2 referencial teorico
2 referencial teorico
 
Aula analise algoritmos
Aula analise algoritmosAula analise algoritmos
Aula analise algoritmos
 
Metodo de Ordenação Selection sort
Metodo de Ordenação Selection sortMetodo de Ordenação Selection sort
Metodo de Ordenação Selection sort
 
Análise de Algoritmos - Método Guloso
Análise de Algoritmos - Método GulosoAnálise de Algoritmos - Método Guloso
Análise de Algoritmos - Método Guloso
 

Ähnlich wie Complexidade de algoritmos insertion, selection e bubble sort.

Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptssuserd654cb1
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptssuserd654cb1
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em Crodolfoeyalana
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmosRicardo Bolanho
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintóticaPablo Silva
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmosPablo Silva
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetoresalfredtaddeus
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfCaiqueMiranda7
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfItaloRainier1
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise AssintóticaMarcos Castro
 
(ACH2002) Introdução à Análise de Algoritmos - Aula 13
(ACH2002) Introdução à Análise de Algoritmos - Aula 13(ACH2002) Introdução à Análise de Algoritmos - Aula 13
(ACH2002) Introdução à Análise de Algoritmos - Aula 13Norton Trevisan Roman
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em CCaique Silva
 

Ähnlich wie Complexidade de algoritmos insertion, selection e bubble sort. (14)

Aula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.pptAula_07_Complexidade_de_Algoritmos.ppt
Aula_07_Complexidade_de_Algoritmos.ppt
 
Aula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).pptAula_07_Complexidade_de_Algoritmos (1).ppt
Aula_07_Complexidade_de_Algoritmos (1).ppt
 
Metódos de Pesquisa em C
Metódos de Pesquisa em CMetódos de Pesquisa em C
Metódos de Pesquisa em C
 
13 introducao a analise de algoritmos
13   introducao a analise de algoritmos13   introducao a analise de algoritmos
13 introducao a analise de algoritmos
 
Análise assintótica
Análise assintóticaAnálise assintótica
Análise assintótica
 
Análise da complexidade de algoritmos
Análise da complexidade de algoritmosAnálise da complexidade de algoritmos
Análise da complexidade de algoritmos
 
Ordenação de vetores
Ordenação de vetoresOrdenação de vetores
Ordenação de vetores
 
Pesquisa sequencial
Pesquisa sequencialPesquisa sequencial
Pesquisa sequencial
 
Algoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdfAlgoritmo de programação dinâmica-01.pdf
Algoritmo de programação dinâmica-01.pdf
 
Artigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdfArtigo sobre complexibilidade complexity.pdf
Artigo sobre complexibilidade complexity.pdf
 
Análise Assintótica
Análise AssintóticaAnálise Assintótica
Análise Assintótica
 
(ACH2002) Introdução à Análise de Algoritmos - Aula 13
(ACH2002) Introdução à Análise de Algoritmos - Aula 13(ACH2002) Introdução à Análise de Algoritmos - Aula 13
(ACH2002) Introdução à Análise de Algoritmos - Aula 13
 
Recursividade em C
Recursividade em CRecursividade em C
Recursividade em C
 
shellsort.pdf
shellsort.pdfshellsort.pdf
shellsort.pdf
 

Complexidade de algoritmos insertion, selection e bubble sort.

  • 1. Centro Universitário do Sul de Minas – UNIS-MG Unidade de Gestão da Educação Superior Presencial – GEP Ciência da Computação Complexidade de Algoritmos Insertion, Selection e Bubble Sort Análise de Algoritmos Professor Renan Levenhagen Bustamante Neves Júlio Cezar Ferreira Rocha Varginha 2013
  • 2. 1 - Complexidade de Algoritmos Bubble Sort As operações de comparações e de troca de posição de elementos são executadas no Pior Caso, o algoritmo realizará n-1 troca para o primeiro passo, depois n-2 trocas para o segundo elemento e assim sucessivamente. Trocas = n-1+n-2+n-3...+2+1 aproximadamente n2 trocas. No Melhor Caso, nenhuma troca será realizada, pois em ambos os casos o algoritmo faz da ordem n comparações. Complexidade no tempo: Comportamento do algoritmo no tempo, em função do tamanho da entrada. Complexidade no espaço: Consumo de memória do algoritmo, em função do tamanho da entrada. O tempo gasto na execução do algoritmo varia em ordem quadrática em relação ao número de elementos a serem ordenados. - T = O (n²) – Notação “Big O” - Atividades mais custosas: • Comparações • Troca de Posição (swap) Melhor caso: Vetor Ordenado. Pior caso: Vetor invertido. 2 - Complexidade de Algoritmos Selection Sort A operação entre as chaves é feita no loop k, para cada valor de i são realizadas (i-1) comparações no loop, como i varia de 2 até n, o número total de comparações para ordenar a lista toda é que para qualquer valor de i existe no máximo uma troca, se no caso a lista já estiver ordenada não ocorre troca. Pior caso existe uma troca para cada loop de k (n-1) para cada troca exige três movimentos. O algoritmo de seleção é considerado um dos mais simples, além disso, possui uma característica eficiente quanto à quantidade de movimentações de registros, com um tempo de execução linear no tamanho de entrada. Geralmente é utilizado para arquivos de registros maiores com até 1000 registros. - T = O(n²) O fato de o conjunto já estar ordenado não ajuda em nada. O algoritmo não é estável, isto é, os registros com chaves iguais nem sempre irão manter a mesma posição relativa de antes do início da ordenação. 3 – Complexidade de Algoritmos Insertion Sort Se o valor a ordenar possui n elementos, então o algoritmo realizará n – 1 etapas. Quantas comparações e trocas serão realizadas? • No melhor caso, vetor ordenado, serão realizadas 1 comparação e 1 troca por etapa, um total de (n-1) comparações e (n-1) trocas. • No pior caso, vetor em ordem inversa, serão realizadas sucessivamente 1,2,3,... n1 comparações e trocas.
  • 3. A soma dos termos dessa progressão aritmética será n²/2. Pode ser demonstrado que para um vetor aleatório, o número aproximado de comparações e trocas é n²/4. Portanto, a complexidade deste algoritmo é quadrática. - T = O(n²). No anel mais interno, na i-ésima iteração, o valor de Ci é: Melhor caso: Ci(número de comparações) = 1 Pior caso: Ci(número de comparações) = i Caso médio: Ci(número de comparações) = 1/i(1 + 2 + ... + i) = (i+1)/2 Se todas as permutações de n são igualmente prováveis para o caso médio, então, o número de comparações é igual a: Melhor caso: C(n) = (1 + 1 + ... + 1) = n - 1 Pior caso: C(n) = (2 + 3 + ... + n) = n2/2 + n/2 - 1 Caso médio: C(n) = 1/2(3 + 4 + ... + n+1) = n2/4 + 3n/4 – 1 O número de movimentações na i-ésima iteração é igual a Mi(n) = Ci(n) – 1 + 3 = Ci(n) + 2 logo, o número de movimentos é igual a: Melhor caso: M(número de elementos do arquivo) = (3 + 3 + ... + 3) = 3(n – 1) Pior caso: M(número de elementos do arquivo) = (4 + 5 + ... + n+2) = n2/2 + 5n/2 – 3 Caso médio: M(número de elementos do arquivo) = 1/2(5 + 6 + ... + n+3) = n2/4 + 11n/4 – 3 Deste modo podemos concluir que: Melhor caso: O(n) Pior caso: O(n2) Caso médio: O(n2) O menor número de comparações e trocas ocorre exatamente quando os elementos estão originalmente em ordem, e o número máximo de comparações e trocas ocorre quando os itens estão originalmente na ordem oposta. Para arquivos já ordenados o algoritmo descobre a um custo O(n) que cada item já está em seu lugar. Então, este é o método a ser utilizado quando o arquivo está ordenado na sua origem. É também um método bom para adicionar um pequeno conjunto de dados a um arquivo já ordenado, originando um outro arquivo ordenado, pois neste caso o custo pode ser considerado linear. 4 - Bibliografia Alves, Ms. Daniel Arndt. Estrutura de Dados II. Insertion Sort. São Paulo. 2009. Alves, Ms. Daniel Arndt. Estrutura de Dados II. Selection Sort. São Paulo. 2009. Alves, Ms. Daniel Arndt. Estrutura de Dados II. Bubble Sort. São Paulo. 2009. Junior, Vilson Heck. Introdução a Complexidade de Algoritmos. São Paulo. 2008. Prestes, Edson. Complexidade de Algoritmos. Rio de Janeiro. 2007. Silva, Cândida Nunes. Complexidade de Algoritmos I. Rio de Janeiro. 2011.