SdevLab – Exemplo de Código | Ordenação de vetores dinâmicos em C/C++

Fala Galera!

Segue abaixo um código de ordenação de vetores dinâmicos em c++. Na verdade são dois exemplos, o quick sort e o shell sort.

Ordenação de vetores dinâmicos em C/C++

O exemplo é bastante simples, primeiro você entra com o vetor e depois dele povoado você escolhe o algoritmo à usar e o vetor sai ordenado no final. É uma aplicação simples porque a idéia é mostrar os algoritmos de ordenação na prática!

Segue o código:


#include
#include
using namespace std;
// shellsort ..........................................
void shellsort(int x[], int tamanho, int nPassos)
{
    int incr,i,j,k,span,y;
    int *incrementos;
    incrementos = new int[nPassos];
    for (i=0;i<=nPassos;i++)
        incrementos[i] = (int)round(exp((nPassos-i)*log(2.0)));
    for (incr=0;incr<=nPassos;incr++)
    {
        //span é o tamanho de incrementos
        span = incrementos[incr];
        for (j=span;j=0 && y< pivo)
             esq++;
        while (vetor[dir] > pivo)
            dir--;
        if (esq <= dir)
        {
            trab = vetor[esq];
            vetor[esq] = vetor[dir];
            vetor[dir] = trab;
            esq++;
            dir--;
        }
    }while (esq <= dir);     if (dir-i >= 0)
        quickSort(vetor,tamanho,i,dir);
    if (j-esq >= 0)
        quickSort(vetor, tamanho, esq, j);
}
int main(){
    int *vetor;
    int aux,aux2,aux3;
    cout << "Quantos elementos voce deseja armazenar?" << endl;
    cin >> aux;
    vetor = new int[aux];
    for(int i=0;i<< "Entre com um número." << endl;
        cin >> aux2;
        vetor[i] = aux2;
        }
    cout << "Entre com 1 para ordenar usando o quickSort ou 2 para ordenar usando o shellsort."    << endl;
    cin >> aux3;
        if(aux3==1)
            quickSort(vetor,aux,0,aux-1);
        if(aux3==2)
            shellsort(vetor,aux,2);
    cout << "O vetor ordenado é: " << endl;
    for(int j=0;j<< vetor[j] << " ";
        }
    delete [] vetor;
}

Até a próxima!
😉

SdevLab – Exemplo de Código | Vetores Dinâmicos em C/C++

Assim como no post anterior, vamos tratar de ponteiros e vetores dinâmicos. Este código lê o número de alunos em uma sala de aula, armazena o nome e a idade de cada aluno em um vetor dinânico e depois mostra quem é o aluno mais velho e o mais novo da sala.

Vetores Dinâmicos em C/C++

Segue o código:

#include <iostream>
using namespace std;
int main ()
{
//este struct monta uma "variavel"
//toda vez que eu escrever alunos o meu código
//ja vai saber que esta "variavel" por sua vez tem 2 variáveis
//que são nome e idade
struct alunos
{
char nomeAluno[200];
int idade;
};
char nomeAlunoVelho[200];
int idadeVelho;
char nomeAlunoNovo[200];
int idadeNovo;
int x; //x é o número de alunos da sala de aula
int maisVelho; //pega a idade do aluno mais velho
int maisNovo; //pega a idade do aluno mais novo
char nome[200];
alunos *sala = NULL;
cout << "Entre com o número de alunos da sala." << endl;
cin >> x;
sala = new alunos[x]; //neste ponto o vetor é alocado dinamicamente
//este vetor é do tipo alunos
maisVelho=0;
maisNovo=100; //inicializo o mais novo com 100 porque
//nenhum aluno vai ter no mínimo 101 anos
for(int i=0; i<x;i++)
{
cout << "Entre com o nome do aluno:" << i << endl;
cin.ignore();
cin.getline(sala[i].nomeAluno,200);
cout << "Entre com a idade do aluno:" << i << endl;
cin >> sala[i].idade;
if(maisVelho < sala[i].idade)
{
strcpy(nomeAlunoVelho,sala[i].nomeAluno);
idadeVelho=sala[i].idade;
maisVelho=idadeVelho;
}
if(maisNovo > sala[i].idade)
{
strcpy(nomeAlunoNovo,sala[i].nomeAluno);
idadeNovo=sala[i].idade;
maisNovo=idadeNovo;
}
}
cout << "O aluno mais velho é: " << nomeAlunoVelho << endl;
cout << "A idade dele é: " << idadeVelho << endl;
cout << "O aluno mais novo é: " << nomeAlunoNovo << endl;
cout << "A idade dele é: " << idadeNovo << endl;
system("Pause");
delete [] sala;
return 0;
}

Até a próxima!
😉