Bublbubblesort

Publicado por Jordano R Reis 26/12/2004

[ Hits: 5.942 ]

Download bubblesort.cpp




Minha primeira implementacao do metodo de ordenacao da bolha...
Foi utilizada a funcao rand() (compilado no dev-c++)

  



Esconder código-fonte

#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
//using namespace std;

int levetor(int vet[],int tam)
{
for(int i=0; i<tam;i++)
    vet[i] = (1+rand()%tam);    
for(int i=0; i<tam; i++)
    cout << vet[i]<<" , ";
}

void bubblesort(int vet[],int tam)
{
    int tmp;
    for(int i=0; i<tam; i++)
        for(int j=0; j<tam; j++)
        {
        if(j != tam -1)
                if(vet[j] > vet[j+1])
                {
                tmp = vet[j];
                vet[j] = vet[j+1];
                vet[j+1] = tmp;
                }
        }
    for(int i=0; i<tam; i++)
        cout << vet[i]<<" , ";
}

void main(){

int tam;
char resp = 's';
while(resp == 's' || resp == 'S' )
    {
    system("cls");
    cout<<"Digite o Tamanho da colecao de dados:\n";
    cin>>tam;
    int vetor[tam];
    cout << "vetor nao ordenado:\n";
    levetor(vetor,tam);
    cout << "\nvetor ordenado:\n";
    bubblesort(vetor,tam);
    cout << "\n\n\nPretende fazer outra ordenacao?\t";
    cin >> resp;
    }
}

Scripts recomendados

Fila usando lista encadeada

[C] Qsort - Ordenação

Deep First Search

Algoritmo da Bisseção

merge sort


  

Comentários
[1] Comentário enviado por jllucca em 28/12/2004 - 19:01h

oi,

cara eu entendo essa ser seu primeiro algoritmo. Mas, tem duas coisas que me incomodaram. Primeiro foi isso: "if(j != tam -1)". Esse SE é de rachar a cara, pois tem jeitos não tão bons que seguem essa ideia que evitam o uso desse if e tem jeito melhores que não precisam de dois for. Mas, enfim...

O segundo detalhe foi que ele foi feito em C++ - não, não é um problema - e o fato de podermos criarmos variaveis onde quisermos é muito, mas muito ruim na minha opinião. Por exemplo, quando voce criou o vetor é quase que imperceptivel pra quem esta lendo o codigo. Acho que adotar a atitude do C em criar variaveis somente no inicio de blocos é a mais correta e facilita e complica, pois em algumas vezes pode ficar pior. Por exemplo, no seu caso tu precisaria definir um ponteiro e aloca-lo com NEW ou malloc. Mas, como eu disse é detalhezinho e espero que encarre como uma critica construtiva.

[]'s


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts