Ir para conteúdo

Ajuda com bubble sort em C


antonio ryan

Posts Recomendados

Pessoal sou iniciante na linguagem de programação em C.

Alguém sabe me dizer o que está errado no meu código ? estou a umas 3 horas e nada de acertar esse código.

2) Apresente o funcionamento do algoritmo de ordenação BOLHA, iteração por iteração, dos
seguintes vetores:
a. [30,10,80,70,90];

meu codigo:

#include <stdio.h>
void sort(int *arr, int size);
 
int main(){
int a [] = {30, 10, 80, 70, 90};
sort(a, 10);
 
for(int i = 0; i < 10; i++)
printf("%d\n", a);
return 0;
}
 
void sort(int *arr, int size){
int x, y, value;
 
for(x = 10; x < size; x ++){
value = arr[x];
 
for(y = x - 10; y >= 0 && arr[y] > value; y --){
arr[y+1] = arr[y];
}
arr[y+1] = value;
}
}
Link para o comentário
Compartilhar em outros sites

Opa, tem várias coisas incorretas aí.

22 horas atrás, antonio ryan disse:

printf("%d\n", a);

O certo seria imprimir a.

22 horas atrás, antonio ryan disse:

sort(a, 10);

O tamanho do array é 5, mas você tá passando 10.

22 horas atrás, antonio ryan disse:

for(x = 10; x < size; x ++){

Essa linha diz "enquanto 10 for menor que 10", então nem nada neste bloco será executado...

A sua função sort também tá meio confusa. Não entendi bem como você quis fazer. O bubble sort consiste simplesmente em percorrer o array n-1 vezes, onde n é o tamanho do array (ou seja, seu número de elementos) testando se o elemento é menor que o anterior. Se sim, trocam-se. Recomendo estudar mais o bubble sort. Tem muito material na web sobre, além de vídeos no YouTube, etc. Só não pegue nada pronto, do contrário você não aprende e daí seu tempo de estudo é jogado no lixo e a grana e o tempo que você tá investindo neste curso/faculdade também. ?

Abraço!

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...