Métodos de ordenação de array


Inserção direta: ordena um array utilizando um sub-array ordenado


void ordenaInsercaoDireta(int *vet, int n)
{
     int aux, i, j;

     for(i = 1; i <= n - 1; i++) {
			aux = vet[i];
			j = i - 1;
			while(j >= 0 && aux < vet[j]) {
                vet[j+1] = vet[j];
                j--;
			}
			vet[j+1] = aux;
     }
}
Seleção direta: varre o array comparando todos os elementos com o primeiro


void ordenaSelecaoDireta(int *vet, int n)
{
    int aux, i, j;

    for(i = 0; i <= n-2; i++) {
		for(j = i + 1; j <= n -1; j++) {
			if(vet[j] < vet[i]) {
				 aux = vet[j];
				 vet[j] = vet[i];
				 vet[i] = aux;
			}
		}
    }
}
Bubblesort: troca os valores entre posições consecutivas, fazendo com que os valores mais altos 'borbulhem' para o final do array


void ordenaBubbleSort(int *vet, int n)
{
     do {
        changed = false;
        for(int i = 0; i < n - 1; i++) {
			if(vet[i] > vet[i+1]) {
				changed = true;
				vet = vet[i+1];
				vet[i+1] = vet[i];
				vet[i] = aux;
			}
        }
     } while(changed);
}





Comentários

Copyright © 2018 Anderson Bravo
www.andersonbravo.com.br
anderson@andersonbravo.com.br