Colección de citas famosas - Slogan de motivación - Código C++, ¡ayuda! ! ! ! Necesidad urgente! ! !

Código C++, ¡ayuda! ! ! ! Necesidad urgente! ! !

El siguiente es el código de implementación escrito en C++:

# include & ltiostream & gt

# include & ltalgorithm& gt

Usar namespace std

const int N = 1e 5;

int n, k, a[N];

int main()

{

CIN>>n>>k;

for(int I = 0;i<n;i++)CIN>>a[I];

for(int I = 0;i<n;)

{

int t = min(i + k + 1, n //Calcula el punto final derecho del intervalo de operación [i+1, t]

auto it = min_element(a + i, auto//Encuentra el valor mínimo del intervalo de operación.

if(it-a & gt; I) //Si el valor mínimo no está al principio del intervalo, realice una operación de intercambio

for(int j = it-a;j>i;j-) swap(a[j],a[j- 1]);

i++;

}

for(int I = 0;i<n;i++)cout <<a[I] & lt;& lt" ";

cout & lt& ltendl

Devuelve 0;

}

El código utiliza un algoritmo codicioso. Seleccione el intervalo [i+1, t] del valor actual. posición para la operación, donde el método de cálculo del punto final derecho t es t = \ min (I + k + 1, n), luego encuentre el valor mínimo en el intervalo, si el valor mínimo no está al comienzo del intervalo; cambie a la izquierda en secuencia con los números anteriores hasta la posición mínima. De esta manera, el orden del diccionario se puede mantener lo más pequeño posible

.