Artigo
Insertion sort
Definição
Insertion sort, ou ordenação por inserção, é um simples algoritmo de ordenação, eficiente quando aplicado a um pequeno número de elementos. Em termos gerais, ele percorre um vetor de elementos da esquerda para a direita e à medida que avança vai deixando os elementos mais à esquerda ordenados. O algoritmo de inserção funciona da mesma maneira com que muitas pessoas ordenam cartas em um jogo de baralho como o pôquer.
Exemplo
#include<stdio.h> int main()
{
int i, j,x; int vetor[5]; printf("Vetor desordenado...\n");
for(i=0;i<5;i++)
{
printf("num: "); scanf("%i",&vetor[i]); }
for (j=1;j<5;j++)
{
x = vetor[j]; i = j - 1; while((i>=0) && (vetor[i]>x))
{
vetor[i+1] = vetor[i]; i = i - 1;
}
vetor[i+1] = x;
}
printf("\nVetor ordenado...\n"); for(i=0;i<5;i++) printf("Vetor[%2d]: %3d\n",i+1,vetor[i]);
getch();
}
Selection sort
Definição
O Selection sort (do inglês, ordenação por seleção) é um algoritmo de ordenação baseado em se passar sempre o menor valor do vetor para a primeira posição (ou o maior dependendo da ordem requerida), depois o de segundo menor valor para a segunda posição, e assim é feito sucessivamente com os (n-1) elementos restantes, até os últimos dois elementos.
== Complexidade == Muito Complexo
O algoritmo possui complexidade enquanto que, por exemplo, os algoritmos Heapsort e Mergesort possuem complexidades .
Exemplo
#include <stdio.h> main() { int i,j,x,min,k; int a[5]={5,3,2,4,1}; for(i=0;i<5;i++) { min=i; for(j=i+1;j<5;j++) { if(a[min]>a[j]) { min=j; } x=a[min]; a[min]=a[j]; a[j]=x; } } for(k=0;k<5;k++) {printf("%d ",a[k]);} printf("\n"); }
}
Quick Sort
Definição
O Quicksort (em português, classificação rápida) designa um algoritmo extremamente eficiente e rápido de classificação de dados desenvolvido por Charles Antony Richard Hoare (conhecido por Tony Hoare e por