Buscar

SOCOORRO

Utilizando a linguagem de programação C/C++ escreva um programa que teste estrutura de ordenação do tipo bubble sort, de números inteiros. O programa deverá permitir a digitação de um vetor com 10 elementos e possuir uma função que ordene estes valores utilizado o método Bubble Sort. Observe que para concluir esta tarefa o seu programa deverá imprimir o vetor não ordenado, o vetor ordenado e o resultado de cada passo do processo de ordenação.

Alguém pode me ajudar?

💡 4 Respostas

User badge image

Osmar Ratai

#include <stdio.h>
#include <stdlib.h>
#define max 10

void bubble (int *a)
{
//FUNÇÃO BUUBLE SORT
int i, x, y, aux;

for(x=0; x<max; x++){
for(y=x+1; y<max; y++){
if(a[y] < a[x]){
printf("\n\nORDENANDO POSICAO %d:\n\n\t", x);
for(i=0 ; i < max ; i++){
printf( "[%d]", a[i]);
}
aux = a[x];
a[x] = a[y];
a[y] = aux;
}
}
printf("\n");
}
}

int main(int argc, char** argv){
int vetor[max], x, y, i, aux, a;
//ENTRADA DE DADOS
for(x=0 ; x < max ; x++){
printf("Entre com o numero %d: \t", x+1);
scanf("%d", &vetor[x]);
}
//SAIDA DE DADOS
printf("\n\nVETOR!!\n\n\t");

for(x=0 ; x < max ; x++){
printf( "[%d]",vetor[x]);
}
//CHAMADA DA FUNÇÃO PARA MOSTAR O VETOR ORDENADO
bubble(vetor);
//SAIDA DE DADOS ORDENADOS
printf("\n\nVETOR ORDENADO!!\n\n\t");
for(x=0; x<max; x++)
printf("[%d]",vetor[x]);
printf("\n");

return 0 ;
}

Eu fiz assim, corri atras de foruns e aprendi. Funcionou tranquilo.

xD

 

 

4
Dislike0
User badge image

Joao Andre MArtins Dias

void bubble(int vet[], int tl) {
    int i = 0, tl2 = tl, aux;
    while (tl2 > 0) {
        while (i < tl) {
            if (vet[i] > vet[i + 1]) {
                aux = vet[i];
                vet[i] = vet[i + 1];
                vet[i + 1] = aux;
            }
            i++;
        }
        i = 0;
        tl2--;
    }
}

tl é o tamanho lógico do vetor, entrada de dados pode ser como está na resposta acima.

1
Dislike0
User badge image

RD Resoluções

Inicialmente definimos as variáveis que serão utilizadas no programa e o vetor solicitado:

#include <stdio.h>

int main() {

int aux,j;

int v[10];

int i, posicao;

int max=0;


Agora devemos preencher o vetor de 10 posições com valores dados pelo usuário:

printf("Digite os valores: ");

for(i=0;i<10;i++){

scanf("%i",&v[i]);

}

 

Podemos reapresentar o vetor não ordenado.

printf("Vetor não ordenado ");

for(i=0;i<10;i++){

printf(" %i ",v[i]);

}

 

Agora devemos iniciar o Bubble Sort, que consiste em ordenar o vetor sempre verificado todos os números e jogando seu máximo para o início. Assim, teremos dois laços, um para encontrar o maior valor e outro para garantir que o vetor será verificado totalmente. Ao decorrer do processo podemos já mostrar o resultado de cada processo. Assim

printf(" Processo ");

j=0;

for(int k=0;k<9;k++){

max=0;

for(i=j;i<10;i++){ //verifica o maior valor existente

if(v[i]>max){

max=v[i];

posicao = i;

}

}

 

Após o valor máximo definido, devemos deslocado para primeira posição representada por k e aumentar j, para que o próximo loop de verificação examine um menor espaço do vetor, assim teremos que:

j++;

aux=v[k];

v[k]=max;

v[posicao]=aux;

 

Ainda dentro do for dependente de k, podemos apresentar o resultado de cada processo e em seguida finaliza-lo.

for(int cont=0;cont<10;cont++){

printf(" %i ",v[cont]);

}

printf(" ");

}

 

Ao fim dos processors, podemos apresentar o vetor ordenado, dessa forma teremos que:

printf("Vetor ordenado ");

for(i=0;i<10;i++){

printf(" %i ",v[i]);

}

return(0);

}

1
Dislike0

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

✏️ Responder

SetasNegritoItálicoSublinhadoTachadoCitaçãoCódigoLista numeradaLista com marcadoresSubscritoSobrescritoDiminuir recuoAumentar recuoCor da fonteCor de fundoAlinhamentoLimparInserir linkImagemFórmula

Para escrever sua resposta aqui, entre ou crie uma conta

User badge image

Outros materiais