Ir para conteúdo
Fórum Script Brasil
  • 0

amahht

Pergunta

Boa noite!
Se fizer certinho eu pago 20 conto, só mandar a conta e agencia q eu deposito...
Aqui está o problema:
EM C++
Preencher um vetor de 50 elementos inteiros com números aleatórios.
Ordenar o vetor em ordem crescente, utilizando o método BubbleSort, e exibi-lo;
Ordenar o vetor em ordem decrescente, utilizando o método BubbleSort, e exibi-lo;
Valeu!
Editado por Jhonas
Link para o comentário
Compartilhar em outros sites

2 respostass a esta questão

Posts Recomendados

  • 0

#include <iostream>
using std::cout;
using std::endl;
#include <vector>
#include <algorithm>
#include <cstdlib>
#include <ctime>

template<class T>
class Ordenador
{
protected:
  virtual bool temQueTrocar(T &alvo, T &outro)=0;
public:
  virtual void ordenarVetor(std::vector<T> &v)
  {
    for(typename std::vector<T>::iterator it1 = v.begin();
        it1 != v.end(); ++it1) {
      for(typename std::vector<T>::iterator it2 = it1; it2 != v.end(); ++it2) {
        if (temQueTrocar(*it1, *it2)) {
          iter_swap(it1, it2);
        }
      }
    }
  }
};

template<class T>
class OrdenadorCrescente : public Ordenador<T>
{
protected:
  virtual bool temQueTrocar(T &alvo, T &outro)
  {
    return (alvo > outro);
  }
};

template<class T>
class OrdenadorDecrescente : public Ordenador<T>
{
protected:
  virtual bool temQueTrocar(T &alvo, T &outro)
  {
    return (alvo < outro);
  }
};

std::vector<int> *criarVetor(int qtde, int maior)
{
  std::vector<int> *v = new std::vector<int>();
  srand(time(0));
  for (int i = 0; i < qtde; i++) {
    v->push_back((rand() % maior) + 1);
  }
  return v;
}

void mostrarVetor(std::vector<int> &v) {
  for (std::vector<int>::iterator it = v.begin(); it != v.end(); it++) {
    cout<<(*it)<<' ';
  }
  cout<<endl;
}

int main(void)
{
  std::vector<int> *v = criarVetor(50, 100);
  cout<<"Vetor original: \n";
  mostrarVetor(*v);
  cout<<endl;

  OrdenadorCrescente<int> ordCresc;
  ordCresc.ordenarVetor(*v);
  cout<<"Vetor em ordem crescente: \n";
  mostrarVetor(*v);
  cout<<endl;

  OrdenadorDecrescente<int> ordDec;
  ordDec.ordenarVetor(*v);
  cout<<"Vetor em ordem crescente: \n";
  mostrarVetor(*v);
  cout<<endl;

  return 0;
}

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...