Ordenação por Seleção
De Wiki DAINF
(Diferença entre revisões)
| Linha 3: | Linha 3: | ||
Código em C | Código em C | ||
| + | |||
#include<stdio.h> | #include<stdio.h> | ||
| Linha 20: | Linha 21: | ||
ordena(n,vet); | ordena(n,vet); | ||
printf("A ordem correta e:\n"); | printf("A ordem correta e:\n"); | ||
| − | |||
for(i=0;i<n;i++){ | for(i=0;i<n;i++){ | ||
printf("%d\n",vet[i]); | printf("%d\n",vet[i]); | ||
} | } | ||
| − | system("pause"); | + | system("pause");} |
| − | } | + | void ordena (int n, int v[]){ |
| − | + | ||
| − | + | ||
| − | void ordena (int n, int v[]) | + | |
| − | { | + | |
int i, j, min, x; | int i, j, min, x; | ||
for (i = 0; i < n-1; ++i) { | for (i = 0; i < n-1; ++i) { | ||
| Linha 38: | Linha 34: | ||
} | } | ||
} | } | ||
| + | |||
| + | |||
| + | |||
Edição de 15h43min de 2 de dezembro de 2008
Um método simples de ordenação é o método da seleção direta ou selection sort. Esse método pega um vetor e procura o seu menor elemento, assim que o esse elemento é encontrado ele é permutado com o primeiro elemento. Depois ele procura o menor elemento no subvetor que começa com o segundo elemento do vetor e permuta com o segundo elemento. O método faz isso até que o subvetor tenha somente 1 elemento, nesse caso o vetor já está ordenado.
Código em C
- include<stdio.h>
void ordena (int n, int v[]);
int main() {
int n,i;
int vet[50];
printf("digite o numero de elementos: ");
scanf("%d",&n);
for(i=0;i<n;i++){
printf("v[%d]: ",i+1);
scanf("%d",&vet[i]);
}
ordena(n,vet);
printf("A ordem correta e:\n");
for(i=0;i<n;i++){
printf("%d\n",vet[i]);
}
system("pause");}
void ordena (int n, int v[]){
int i, j, min, x;
for (i = 0; i < n-1; ++i) {
min = i;
for (j = i+1; j < n; ++j)
if (v[j] < v[min]) min = j;
x = v[i]; v[i] = v[min]; v[min] = x;
}
}
Referências:
- FEOFILOFF, Paulo. Projeto de Algoritmos. Disponível em: <http://
www.ime.usp.br/~pf/algoritmos/index.html>. Acesso em: 28 nov. 2008