_Achille
Utente Èlite
- Messaggi
- 3,067
- Reazioni
- 725
- Punteggio
- 131
Ahhh allora è semplicissimo.SCusa io ho 3 specifiche
1) ordinamento crescente
2) ordinamento decrescente
3) ordinamento casuale
Poniamo che i numeri siano 4, 9, 3, 10 , 7
quindi nel primo caso sono è l'ordin eè 3,4, 7,9,10, nel secondo 10,9,7,4,3 nel terzo caso se voglio un ordinamento casuale (es, 9,4,10,7, 3) esiste il modo o l'ordinamento casuale si intende quando usi il rand e vengono dei nuemri casuali e quindi non applichi ne' il selsort ne' il bubble perchè con il rand hai apunti dei numeri a caso?
Bisogna usare i vettori <vector> così non bisogna creare copie.
C++:
#include <vector>
using namespace std;
int main()
{
const int dim = 5;
vector<int, dim> vettore;
//Normale inserimento dei valori, come con un normale vettore fatto con il puntatore...
}
C++:
double bubbleSort(vector <int> v, int dim, bool (*cmp)(const int&, const int&))
{
auto puntoA = high_resolution_clock::now();
// il resto ma nell’if scrivi
...
if((*cmp)(v[j], v[j+1]))
...
}
Quel che vai a fare è passare come parametro la condizione che ti dice come ordinarlo. Sfortunatamente si deve fare passando come parametro una funzione. Quando chiami la funzione scrivi
C++:
bubbleSort(vettore, dim, &greater<int>) //per ordinamento crescente
bubbleSort(vettore, dim, &less<int>) //per ordinamento decrescente