Saltar al contenido

contar el número de intercambios en el ejemplo de código de clasificación de selección

Luego de de esta prolongada recopilación de datos resolvimos esta contratiempo que tienen muchos de nuestros lectores. Te brindamos la solución y nuestro deseo es que sea de mucha ayuda.

Ejemplo: el número de intercambios necesarios en el ordenamiento por selección

#includeusingnamespace std;typedeflonglong ll;
 
ll a[111111], tmp[111111], ans;voidmerge_sort(ll a[], ll b[], ll lo, ll hi)
    ll i, j, k;if(lo >= hi)return;
 
    ll mid =(lo + hi)/2;merge_sort(a, b, lo, mid);merge_sort(a, b, mid +1, hi);
 
    i = lo;
    j = mid +1;for(k = lo; k <= hi; k++)if(j > hi)
            b[k]= a[i++];elseif(i > mid)
            b[k]= a[j++];elseif(a[i]<= a[j])
            b[k]= a[i++];else
            b[k]= a[j++];
            ans += mid - i +1;for(i = lo; i <= hi; i++)
        a[i]= b[i];intmain(void)
    ll t;scanf("%lld",&t);while(t--)
        ll n, i;scanf("%lld",&n);for(i =1; i <= n; i++)scanf("%lld",&a[i]);
 
        ans =0;merge_sort(a, tmp,1, n);printf("%lldn", ans);return0;

Más adelante puedes encontrar las acotaciones de otros desarrolladores, tú también puedes insertar el tuyo si lo crees conveniente.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *