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 !!!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts