Ho scritto questo programma per risolvere il problema dell’ordinamento paletta:
#include <bits/stdc++.h>
using namespace std;
long long paletta_sort(int N, int V[])
{
long long int conta=0;
bool ord=true;
for (int i=0;i<N-1;i++)
{
if (V[i]>V[i+1])
{
ord=false;
break;
}
}
if (ord)
return conta;
int i=0;
while (!ord)
{
for (i;i<(N-2);i++)
{
bool trip=(V[i]>V[i+1]&&V[i+1]>V[i+2]);
if (trip)
{
swap(V[i],V[i+2]);
swap(V[i],V[i+1]);
conta=conta+1;
}
}
ord=true;
for (int i=0;i<N-1;i++)
{
if (V[i]>V[i+1])
{
ord=false;
break;
}
}
if (ord)
return conta;
else
return -1;
}
}
Tuttavia, riesce solo a stabilire se un vettore NON è ordinabile. Come posso risolvere?