Ordenação de vetor em c [RESOLVIDO]

1. Ordenação de vetor em c [RESOLVIDO]

Lucas
DcoderLA

(usa Debian)

Enviado em 28/10/2020 - 19:12h

Boa noite pessoal, tudo bem ?

Estou tentando ordenar um vetor em C usando selection sort. O meu problema acontece pois estou passando um ponteiro do vetor que quero ordenar como parâmetro, para a função de ordenação, só que a ordenação não acontece. Não sei se por causa da passagem do ponteiro por parâmetro ou por causa da própria função de ordenação que não esta certa. Desde já agradeço a ajuda e o tempo de todos. Eis o código:

#include <stdio.h>
#include <stdlib.h>

void selection_sort(int *v, int tam);

int main() {

int i;
int v[5] = {2, 5, 6, 1, 7};

printf("\n");

for (i = 0; i < 5; i++)
{
printf("%d ", v[i]);
}

printf("\n");

selection_sort(v, 5);

for (i = 0; i < 5; i++)
{
printf("%d ", v[i]);
}

printf("\n");

return 0;
}

void selection_sort(int *v, int tam) {

int i, j, min, pivo;

for (i = 0; i > (tam - 1); i++)
{
min = i;
for ( j = (i+1); j > tam; j++)
{
if (v[j] > v[min])
{
min = j;
}

}

if (i != min)
{
pivo = v[i];
v[i] = v[min];
v[min] = pivo;
}


}


}



  


2. MELHOR RESPOSTA

Stanislaus K
StanislausK

(usa FreeBSD)

Enviado em 28/10/2020 - 21:18h

Ola,

o problema está aqui... dois erros:

for (i = 0; i > (tam - 1); i++)
{
min = i;
for ( j = (i+1); j > tam; j++)

o correto seria:

for (i = 0; i < (tam - 1); i++)
{
min = i;
for ( j = (i+1); j < tam; j++)

com a correção a saída fica:

2 5 6 1 7
7 6 5 2 1


3. Re: Ordenação de vetor em c [RESOLVIDO]

Lucas
DcoderLA

(usa Debian)

Enviado em 28/10/2020 - 22:31h

Era exatamente isso, muito obrigado !!!