Escrever um método Bolha em C para ordenar um vetor de forma centralizada. A primeira metade deve ter elementos ordenados em ordem ascendente e a segunda metade em ordem descendente. Estou com bloqueio mental só consigo chegar nisso !
void troca(int *a, int *b)
{
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void bubbleSort(int *vetor, int n )
{
int i, j, aux;
for( i = 0 ; i < n-1 ; i++ )
{
for( j = 1 ; j < n-i ; j++ )
{
if ( vetor[j] < vetor[j-1] )
{
troca(&vetor[j-1], &vetor[j]);
}
}
}
}
void bubbleSort2(int *vetor, int n )
{
int i, j, trocou;
for( i = 0 ; i < n-1 ; i++ )
{
trocou = 0;
for( j = 1 ; j < n-i ; j++ )
{
if ( vetor[j] < vetor[j-1] )
{
troca(&vetor[j-1], &vetor[j]);
trocou = 1;
}
}
if (trocou == 0)
{
break;
}
}
}
int main()
{
int i;
int vet[5] = {5, 2, 8, 1, 0};
bubbleSort(vet, 5);
for( i=0; i < 5; i++)
{
printf(" %d ", vet[i] );
}
}