You are on page 1of 9

Universidade Presbiteriana Mackenzie

Disciplina: Programao Estruturada II


Selection Sort
Integrantes:
Cinthia Sayuri Toma
Danilo Ischiavolini Chaves
Helga Caruso de Moraes
Jonison Eric Favaro Xavier
Lais Adriane Genaro da Silva
Milene Martins Tavares
Vinicius Batista Jota
Viviane C. S. Dezzidrio
Tpicos da Apresentao:

1. Introduo:

2. Importncia

3. Selection Sort
Apresentao
Algoritmo
Exemplo
Complexidade
1. Introduo:

Algoritmo de ordenao uma seqncia de instrues
executada de maneira ordenada com a responsabilidade de
classificar dados, antes encadeados em uma determinada srie,
ordenando-os parcial ou completamente, tendo como principal
objetivo tornar mais eficiente o acesso aos dados.

Entre os algoritmos de ordenao, podemos destacar:
bubblesort, quicksort, insertionsort, selectionsort, mergesort,
heapsort, radixsort, shellsort e shakesort .
2. Importncia e Aplicaes:


A ordenao importante em diversas aplicaes computacionais,
desde as mais simples at as mais complexas. Existem variaes de
problemas envolvendo ordenao, assim como tambm variam as
tcnicas para solucionar estes problemas. Dependendo da aplicao,
cada algoritmo considerado possui um vantagem particular sobre o outro.

Uma aplicao de ordenao seria, por exemplo, uma lista telefnica.
Se ela no estivesse ordenada, seria trabalhoso e complicado achar
determinado nome, j que os nomes poderiam estar em qualquer coluna
de qualquer pgina da lista.

3.1. Selection Sort

Um dos mais intuitivos algoritmos de ordenao, o selectionsort
procura o menor (ou o maior) elemento da lista e o substitui com o
elemento que se encontra na primeira (ou ltima) posio, repetindo
estes dois passos com todos os elementos restantes da lista, de
maneira a classificar o universo em questo. Para identificar o menor
(ou maior) elemento da lista em questo, o selectionsort utiliza uma
pesquisa seqencial.
Algoritmo: Selection_Sort
Entrada : um array e o seu nmero de elementos (item, number)
Sada : o array ordenado

void selectionSort(int vetor[], int tamanho){
int i, j, indmin, aux;
for(i=0; i<tamanho-1; i++){
indmin = i;
for(j=i+1; j<tamanho; j++){
comparacao++;
if(vetor[j] < vetor[indmin])
indmin = j;
}
if(i != indmin){
aux=vetor[i];
vetor[i] = vetor[indmin];
vetor[indmin] = aux;
troca++;
}
}
}
3.2. Algoritmo Selection Sort
Pior Caso:
Troca = n/1
Comparaces = (n^2-n)/2

Caso Mdio:
Troca = n-1
Comparaces = (n^2-n)/2

Melhor Caso:
Troca = 0
Comparaces = (n^2-n)/2

3.3.1 Anlise de complexidade
Selectionsort - Quantidade de trocas
0
100
200
300
400
500
600
10 25 50 100 150 200 250 300 350 400 450 500
tam. matriz
t
r
o
c
a
s
Pior Caso
Caso Mdio
Melhor Caso
3.3.2 Anlise de complexidade
Selectionsort - Quantidade de comparaes
0
20000
40000
60000
80000
100000
120000
140000
10 25 50 100 150 200 250 300 350 400 450 500
tam. matriz
c
o
m
p
a
r
a

e
s
Pior Caso
Caso Mdio
Melhor Caso
3.3.3 Anlise de complexidade

You might also like