Aiuto codifica bubble sort C++

  • Autore discussione Autore discussione MPG
  • Data d'inizio Data d'inizio
Pubblicità

MPG

Utente Attivo
Messaggi
566
Reazioni
4
Punteggio
55
Scusate il prof ha detto di fare riferimento a quanto vi allego per creare un programma con Bubble sort, sono un po' in crisi per come codificarla seguendo queste direttive, mi potete aiutare seguendo queste indicazioni?
Grazie infinite a tutti.
 

Allegati

  • Bubblesort.webp
    Bubblesort.webp
    34.3 KB · Visualizzazioni: 995
Ultima modifica:
Non mi sembra molto difficile...
C++:
const int n = 10;
int vet[n];

bool nonOrdinato = true;
int stop = n - 1;

while (nonOrdinato)
{
    nonOrdinato = false;
    for (int i = 0; i <= stop; i++)
        if (vet[i] > vet[i + 1])
        {
            swap(vet[i], vet[i + 1]); // std::swap()
            nonOrdinato = true;
        }

    stop -= 1;
}

Ma il professore ve lo ha spiegato? Perché l'implementazione è molto semplice
 
Ho scritto tutto il codice cosi' ma non viene nulla..Il prof ha detto di studiare quella pseudocodifica e di farlo....
Swap tra l'altro non l'abbiamo mai fatto c'è un modo alternativo? Ho trovato in allegato altro modo per swap cosa ne pensi?

Codice:
#include <iostream>

using namespace std;

int main()
{


const int n = 10;
int vet[n];

bool nonOrdinato = true;
int stop = n - 1;

while (nonOrdinato)
{
    nonOrdinato = false;
    for (int i = 0; i <= stop; i++)
        if (vet[i] > vet[i + 1])
        {
            swap(vet[i], vet[i + 1]); // std::swap()
            nonOrdinato = true;
        }

    stop -= 1;
}
}
 

Allegati

  • Bubblesort swap.webp
    Bubblesort swap.webp
    46.3 KB · Visualizzazioni: 144
Ho scritto tutto il codice cosi' ma non viene nulla..Il prof ha detto di studiare quella pseudocodifica e di farlo....
Swap tra l'altro non l'abbiamo mai fatto c'è un modo alternativo? Ho trovato in allegato altro modo per swap cosa ne pensi?

Codice:
#include <iostream>

using namespace std;

int main()
{


const int n = 10;
int vet[n];

bool nonOrdinato = true;
int stop = n - 1;

while (nonOrdinato)
{
    nonOrdinato = false;
    for (int i = 0; i <= stop; i++)
        if (vet[i] > vet[i + 1])
        {
            swap(vet[i], vet[i + 1]); // std::swap()
            nonOrdinato = true;
        }

    stop -= 1;
}
}
In che senso non viene nulla? Il codice corretto è quello.
È una funzione che sta nello spazio dei nomi std non devi studiarla per usarla. Esegui semplicemente uno scambio di valori
 
In pratica con code blocks quando avvio il tutto esce la finestra nera ma non viene fatta nessun ridistribuzione dei numeri a video dal piu' basso al piu' alto...
 

Allegati

  • bubblecodifica.webp
    bubblecodifica.webp
    31.8 KB · Visualizzazioni: 131
In pratica con code blocks quando avvio il tutto esce la finestra nera ma non viene fatta nessun ridistribuzione dei numeri a video dal piu' basso al piu' alto...
Mi pare ovvio.
Manca l’inserimento dei dati e la stampa. L’implementazione deve essere generica.
Se ti mettevo una funzione, come l’esempio in Java che hai citato, pensavi che pure lì ti facesse la stampa?
 
orca miseria, dai caspita....
Pero' tornando allo swap si puo' usare solo quella funzione per lo scambio perchè se guardi in swap elements l'allegato prima si potrebbe usare per lo swap cosi' o no?

temp=num;
num= num[i+1];
num[i+1]=temp;
 
Ultima modifica:
Codice:
#include <iostream>

using namespace std;

int main()
{


const int n = 3;
int vet[n];
for(int i=0;i<n;i++)
{
    cin>>vet[i];
}
cout<<endl;
bool flag = true;
int stop = n - 1;

while (flag)
{
    flag = false;
    for (int i = 0; i <= stop; i++)
        if (vet[i] > vet[i + 1])
        {
            swap(vet[i], vet[i + 1]); // std::swap()
            flag = true;
        }

    stop -= 1;
}
for(int i=0;i<n; i++)
{
    cout<<vet[i]<<endl;
}
}
 
Pero' se non so o meglio se non mi è stato spiegato lo swap posso scrivere cosi' giusto?

Codice:
#include <iostream>

using namespace std;

int main()
{


const int n = 3;
int vet[n];
int tmp;
for(int i=0;i<n;i++)
{
    cin>>vet[i];
}
cout<<endl;
bool flag = true;
int stop = n - 1;

while (flag)
{
    flag = false;
    for (int i = 0; i <= stop; i++)
        if (vet[i] > vet[i + 1])
        {
            //swap(vet[i], vet[i + 1]); // std::swap()
            tmp=vet[i];
            vet[i]=vet[i+1];
            vet[i+1]=tmp;
            flag = true;
        }

    stop -= 1;
}
for(int i=0;i<n; i++)
{
    cout<<vet[i]<<endl;
}
}
 
Pero' se non so o meglio se non mi è stato spiegato lo swap posso scrivere cosi' giusto?

Codice:
#include 

using namespace std;

int main()
{


const int n = 3;
int vet[n];
int tmp;
for(int i=0;i{
cin>>vet[i];
}
coutbool flag = true;
int stop = n - 1;

while (flag)
{
flag = false;
for (int i = 0; i  if (vet[i] > vet[i + 1])
{
//swap(vet[i], vet[i + 1]); // std::swap()
tmp=vet[i];
vet[i]=vet[i+1];
vet[i+1]=tmp;
flag = true;
}

stop -= 1;
}
for(int i=0;i{
cout}
}
Mi permetto di darti questo consiglio: non stare ad aspettare che ti venga spiegato ogni singolo aspetto di un linguaggio; se vuoi sapere cosa fa una cosa, consulta l'API o fai una ricerca. In caso contrario sarai fermo ogni due per tre; si incontra di continuo qualcosa di nuovo in questo settore.
Inoltre consultare le API del linguaggio è cosa importante.
Poi tieni presente che l'API serve per fornire livelli di astrazione; ci saranno casi nei quali dovrai usare qualcosa senza preoccuparti di come funzioni internamente.

Nel caso di specie: se tu hai commentato swap e sotto effettui uno scambio tra due valori... cosa farà swap? Non so se il docente vuole per forza che utilizzi tutto ciò che cita, questo lo sai solo tu, che lo conosci.

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
"Nel caso di specie: se tu hai commentato swap e sotto effettui uno scambio tra due valori... cosa farà swap? "
Scusa non ho capito, io non ho commentato lo swap, l'aveva messo l'utente _Achille sopra e poichè di solito il prof non ci fa eseguire cose nuove se non le ha spiegate mi pare che con lo swap faccio quello scambio di valori che ho trascritto nelle 3 righe usando tmp, giusto?
 
"Nel caso di specie: se tu hai commentato swap e sotto effettui uno scambio tra due valori... cosa farà swap? "
Scusa non ho capito, io non ho commentato lo swap, l'aveva messo l'utente _Achille sopra e poichè di solito il prof non ci fa eseguire cose nuove se non le ha spiegate mi pare che con lo swap faccio quello scambio di valori che ho trascritto nelle 3 righe usando tmp, giusto?
Esatto. Lo swap comunque fa quello.

Inviato da ONEPLUS A5000 tramite App ufficiale di Tom\'s Hardware Italia Forum
 
Pubblicità
Pubblicità
Indietro
Top