Jump to content

Ajuda com bubble sort em C


antonio ryan

Recommended Posts

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 to comment
Share on other sites

  • Administrators

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 to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...