Métodos de Busca e Ordenação
Os algoritmos de ordenação servem para organizar uma certa lista de intens em uma certa ordem escolhida, para que o acesso aos mesmos seja mais rápido e organizado. As ordens mais utilizadas são a numérica e alfabética.
Neste trabalho são apresentados 4 algoritmos: Bubble Sort, Selection Sort, Quick Sort e Insertion Sort.
1.1 BUBBLE SORT
Bubble sort é o algoritmo mais simples, mas o menos eficiente. A ideia implantada nele, é percorrer o vetor diversas vezes, buscando encontrar as unidades “desordenadas”, flutuando sempre o maior valor para cima, por este motivo, para listas muito grandes o algoritmo se torna ineficiente, pois o custo de processamento e performance é muito grande.
Bubble Sort utilizado na linguagem C: void bubble_sort(int A[], int tamanho) { int compara = 0; int troca = 0; for(int i=tamanho-1; i >= 1; i--) { for(int j=0; j < i ; j++) { compara ++; if(A[j]>A[j+1]) { aux = A[j]; A[j] = A[j+1]; A[j+1] = aux; troca++; } } }
}
Ilustração do funcionamento do Bubble Sort:
1.2 SELECTION SORT
Este algoritmo funciona com a ideia de sempre mover o menor valor para a primeira posição, o segundo menor para a segunda posição, e assim sucessivamente, até os n-1 itens da lista.
Exemplo de utilização do Selection Sort na linguagem C: void selection_sort(int num[], int tam) { int i, j, min, aux; for (i = 0; i < (tam-1); i++){ min = i; for (j = (i+1); j < tam; j++){ if(num[j] < num[min]) { min = j; } } if (i != min) { aux = num[i]; num[i] = num[min]; num[min] = aux; } }
}
Ilustração do funcionamento do Selection Sort:
1 QUICK SORT
É considerado o mais rápido e eficaz dos algoritmos de ordenação. Este algoritmo seleciona o valor central da lista como um separador, chamado de